Spring核心概念
一、IOC/DI
-
IoC(Inversion of Control)控制反转
使用对象时,由主动的new产生的对象转化为外部(IoC容器)提供的过程,此过程中对象创建控制权由程序转移到外部,此思想称之为控制反转 -
DI(Dependency Injection)依赖注入
在容器中建立bean与bean的依赖关系成为依赖注入。 -
依赖注入(DI)和控制反转(IoC)是从不同的角度的描述的同一件事情,就是指通过引入IoC容器,利用依赖
关系注入的方式,实现对象之间的解耦。 -
实现方式
DI是IoC的实现方式之一。而DI 的实现方式主要有两种:构造方法注入和属性Setter注入。
参考资料 IoC
二、IOC容器
- Ioc容器
实现了IoC思想的容器就是IoC容器,比如:SpringFremework, Guice(Google开源的轻量级DI框架)。
Spring提供的一个容器,成为IoC容器,用来充当IoC思想中的“外部”。
IoC容器负责对象的创建、初始化等一系列工作,被创建和被管理的对象在IoC容器中统称为Bean
三、Bean容器和IoC容器的理解
Spring容器主要是对IoC设计模式的实现,主要是使用容器来统一管理Bean对象,及管理对象之间的依赖关系。
- 创建容器的API主要是BeanFactory和ApplicationContext两种:
1.BeanFactory是最底层的容器接口,只提供了最基础的容器功能:Bean 的实例化和依赖注入,并
且使用懒加载的方式,这意味着 beans 只有在我们通过 getBean() 方法直接调用它们时才进行实例
化。
2.ApplicationContext(应用上下文)是BeanFactory的子接口,与 BeanFactory 懒加载的方式不
同,它是预加载,所以,每一个 bean 都在 ApplicationContext 启动之后实例化。
3.除了基础功能,还添加了很多增强:整合了Bean的生命周期管理、AOP等