Spring IoC容器
以下内容是根据“精通Spring4.x企业应用开发实战”做的个人笔记。不作为商业用途。版权归原著所有。
一、理解控制反转
1.对软件来说:某一接口的具体实现类的选择控制权从调用类中移除,转交给第三方决定,即,由Spring容器借由Bean配制来进行控制。
2.IoC和DI:IoC的概念过于生涩难懂,后来出现DI,用来更加明朗的解释IoC。即:让调用类对某一接口的实现类的依赖由第三方(容器或协作类)注入,以移除调用类对某一接口的依赖。
二、注入方式
1.通过构造函数注入
2.通过属性注入
三、类装载器
1.装载、链接(校验、准备、解析)、初始化
四、资源加载
1.资源加载地址表达式
A: classpath: classpath:com/smart/beanfactory/beans.xml 从类路径中加载资源,资源可以在标准的文件系统中,也可以在JAR 或ZIP包中,classpath和classpath/等价;classpath*:会加载分模块应用下的所有符合条件的配置文件
E: 没有前缀的时候 com/smart/beanfactory/beans.xml 根据ApplicationContext的具体实现类采用对应的resources
五、资源访问样例
推荐使用Spring 提供的资源加载表达式获取资源文件,而避免使用Resources的实现类获取。
六、BeanFactory中Bean的生命周期
1. Demo样例:
执行项目中图如下位置的main()
2. Bean级别的四个生命周期接口: BeanFactoyAware、BeanNameAware、InititalizingBean、DisposableBean
七、ApplicationContext中Bean的生命周期
1. 利用反射识别BeanPostProcesser,BeanFactory需要使用addBeanPostProcesser注册.
2. ApplicationContext增加了setApplicationContext()的步骤