bean的作用域、bean的生命周期、bean的后置处理器
bean的作用域
概念:在Spring中可以通过配置bean标签的scope属性来指定bean的作用域范围,取值含义如下所示:
如果是在WebApplicationContext环境下还会有另外两个作用域(不常用)
在resources目录下创建spring-scope.xml文件
在test的java下创建一个测试类
第一种:
在配置文件(spring-scope)中添加bean
在测试类中添加测试方法
测试结果如下所示:
第二种:
在第一种的基础上,在spring-scope文件中将单例修改为多例
使用上一次的测试方法进行测试的结果如下所示:
bean的生命周期
具体的生命周期过程:
1.bean对象创建(调用无参构造器)
2.给bean对象设置属性
3.bean对象初始化之前操作(由bean的后置处理器负责)
4.bean对象初始化(需在配置bean时指定初始化方法)
5.bean对象初始化之后操作(由bean的后置处理器负责)
6.bean对象就绪可以使用
7.bean对象销毁(需在配置bean时指定销毁方法)
8.IOC容器关闭
在pojo目录下创建User类
在User类中创建属性
在无参构造器中和某个set方法中添加如下的输入的提示,并创建初始化和销毁的方法
在resources目录下创建spring-lifecycle配置文件
在配置文件中添加bean
在test的java下添加测试类
在测试类中添加测试方法
测试结果如下所示:
bean的后置处理器
bean的后置处理器会在生命周期的初始化前后添加额外的操作,需要实现BeanPostProcessor接口,且配置到IOC容器中,需要注意的是,bean后置处理器不是单独针对某一个bean生效,而是针对IOC容器中所有的bean都会执行
注意:
若bean的作用域为单例时,生命周期的前三个步骤会在获取IOC容器时执行
若bean的作用域为多例时,生命周期的前三个步骤会在获取bean时执行
在main的java下创建process包并创建一个类
在该类中实现BeanPostProcessor接口,ctrl+o实现它的抽象方法
在IOC容器(spring-lifecycle.xml)中配置后置处理器
测试方法:
测试结果:
