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)中配置后置处理器

测试方法:

测试结果:

经验分享 程序员 微信小程序 职场和发展