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*:会加载分模块应用下的所有符合条件的配置文件
B: file: file:/conf/com/smart/benafactory/beans.xml             使用URLresources从文件系统中加载资源 ,可以为相对路径也可以为绝对路径      
C:  http:// http://www.smart.com/resources/beans,xml        使用URLresources从Web服务器中装载资源
D: ftp://www.smart/com.resources/beans.xml                      使用URLresources从FTP服务器中装载资源
E: 没有前缀的时候 com/smart/beanfactory/beans.xml        根据ApplicationContext的具体实现类采用对应的resources

五、资源访问样例

推荐使用Spring 提供的资源加载表达式获取资源文件,而避免使用Resources的实现类获取。
Spring IoC容器
六、BeanFactory中Bean的生命周期
1. Demo样例:
执行项目中图如下位置的main()

Spring IoC容器
2. Bean级别的四个生命周期接口: BeanFactoyAware、BeanNameAware、InititalizingBean、DisposableBean
七、ApplicationContext中Bean的生命周期
1. 利用反射识别BeanPostProcesser,BeanFactory需要使用addBeanPostProcesser注册.
2. ApplicationContext增加了setApplicationContext()的步骤