一、控制反转IOC
1)控制:控制对象的创建和销毁(生命周期)
2)反转:以前创建对象由程序员完成,现在由spring来完成,底层可以理解为“工厂+反射+配置文件”实现程序解耦合
3)BeanFactory:老版本的工厂
调用getBean的时候,才会生成类的实例
ApplicationContext:新版本的工厂
ApplicationContext:加载配置文件的时候,就会将Spring管理的类都实例化
4)ApplicationContext有两个实现类
ClassPathXmlApplicationContext 加载类路径下的配置文件
FileSystemXmlApplicationContex:加载文件系统下的配置文件
二、依赖注入
1)前提要有IOC
2)组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系。容器全权负责的组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造函数传递给需要的对象。
- 注入方式:
1)类中set方法注入
类中必须有属性的set方法
必须有无参构造函数,默认是有的,可以自己写出来
2)类构造方法注入:使用的是有参构造函数
3)p名称空间注入(Spring2.5以后提供)
加入新约束:
xmlns:p=“http://www.springframework.org/schema/p”
4)spel注入(Spring3.0以后)
Spring Expression Language,Spring的表达式语言