spring IOC的理解.
(1)没有IoC的程序中,面向对象的编程,对象的创建和对象之间的依赖关系硬编码到程序中,有程序本身控制;
引入DI,对象的创建和对象之间的依赖关系交由第三方——Spring容器来控制。
IoC的本质是获取依赖对象的方式翻转了。
(2)IoC、DI、Spring 容器区别:
- IoC:控制翻转,一种设计思想——把对象的实例化工作交由Spring容器来完成。一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式
- DI:依赖注入。实现IoC的方式,可以理解为IoC的另一种表示方式
- Spring IoC Container:Spring容器,Spring框架实现IoC的组件。Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时再从Ioc容器中取出需要的对象。
注:bean是一个广义的概念,任何的Java对象、Java组件都被当成Bean处理,由Spring创建和管理
BeanFactory和ApplicationContext——Spring两大核心接口、两大Spring容器,生成Bean实例并管理Bean的生命周期。
(3)Spring创建对象的几种方式
- 通过无参构造器创建
- 通过有参构造器创建
- 通过静态工厂创建
- 通过实例工厂创建