Spring学习笔记(二):Spring IOC介绍
一、Bean实例化方式:
- 构造器实例化:xml配置,可通过<constructor-arg>及<property> 标签构造参数值(两者分别代表构造器注入与setter方法注入)
- 静态工厂:xml里指定class属性及factory-method属性来指定实例化bean的方法
- 实例工厂:xml里配置factory-bean属性来指定工厂bean,factory-method属性指定实例化bean的方法
二、IOC(Inversion of Control):
- 控制反转:传统程序在对象内部通过New Class的方式由程序主动创建依赖对象,而反转则是指由IOC容器来创建及注入对象,故而对象由主动反转成了被动接收依赖对象,成功降低了对象间的耦合度
- 依赖注入:由IOC容器来控制对象间的依赖关系,那么:
1.谁依赖于谁:当然是应用程序依赖于IoC容器
2.为什么需要依赖:应用程序需要IoC容器来提供对象需要的外部资源
3.谁注入谁:很明显是IoC容器注入应用程序某个对象,应用程序依赖的对象
4.注入了什么:就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)。 - IOC工作原理:
1.准备配置文件:在配置文件中为Bean配置元数据
2.由IoC容器进行解析元数据: IoC容器的Bean Reader读取并解析配置文件,根据定义生成BeanDefinition配置元数据对象,IoC容器根据BeanDefinition进行实例化、配置及组装Bean
3.实例化IoC容器:由客户端实例化容器,获取需要的Bean。