Spring核心的模式实现,是为应用提供IoC容器和AOP框架。在spring中,Java EE的服务都被抽象到IoC容器中,并通过AOP进行有效的封装,因为依赖注入 的特性,这些复杂的依赖关系的管理被反转并交给容器,使复杂的依赖关系的管理从应用中解放出来。
依赖反转:哪些方面的控制被反转了?
依赖的对象的获得被反转了。控制反转一个更好听的名字:依赖注入。
如何反转对依赖的控制:把控制权从具体的业务对象手中转交到平台或者框架中,是降低面向对象系统设计复杂性的一个有效解决方案。也是IoC容器要解决的核心问题。
IoC容器的初始化过程:
1.Resource定位过程:这个Resource定位指的是BeanDefinition的资源定位,它由ResourceLoader通过统一的Resource接口来完成,这个Resource对各种形式的BeanDefinition的使用都提供了统一的接口。
2.BeanDefinition的载入。这个载入过程是把用户定义好的Bean表示成IoC容器内部的数据结构,而这个容器内部的数据结构就是BeanDefinition。
3.向IoC容器注册这些BeanDefinition。这个过程是通过调用BeanDefinitionRegistry接口的实现来完成的。