
IOC容器所以就是一个大工厂spring ioc原理 反射,它拿来管理我们所有的对象或者依赖关系
1)原理就是通过Java的反射技术来推动的!通过反射我们可以获得类的所有信息(成员函数、类名等等等)!
2)再通过配置文件(xml)或者注解来表述类与类之间的关系
3)我们就可以借助这种配置信息和反射技术来建立出对应的对象跟依赖关系了!

上面描述的技术即使学过点Java的都可说出来,这一下子可能还会被面试官问倒了,我们简单来说说实际Spring IOC容器是如何推动对象的建立跟依赖的:
1.根据Bean配置信息在容器外部创建Bean定义注册表
2.根据注册表加载、实例化bean、建立Bean与Bean之间的依赖关系

3.将这种准备就绪的Bean放到Map缓存池中spring ioc原理 反射,等待应用程序调用
Spring容器(Bean工厂)可简单分成两种:
几乎所有的应用场合都是使用ApplicationContext!
BeanFactory的继承体系:

ApplicationContext的继承体系:
其中在ApplicationContext子类中既有一个比较重要的:WebApplicationContext

ApplicationContext和BeanFactory不同之处在于:
有了里面的知识点了,我们再来简要地说说Bean的初始化过程:
简要总结:
Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全跟并发问题必须开发者自行去搞定。但实际上,大部分的Spring bean并没有可变的状况(比如Serview类和DAO类),所以在某些程度上说Spring的单例bean是线程安全的。如果你的bean有多种状态的话(比如 View Model 对象),就必须自行保证线程安全。
最简单的解决方法就是将多态bean的作用域由“singleton”变更为“prototype”
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-138288-1.html
阿利伯克导弹驱逐舰
我才看到因为我还没有每天刷微博的习惯
巴菲特