1.什么叫生命周期
生命周期就是从创建对象到销毁对象的过程
2.bean生命周期
(1)通过构造器创建bean实例(使用无参构造器)
(2)为bean的属性设置值和对其他bean引用(通过set方法)
(3)调用bean的初始化方法(需要进行配置)
(4)获取到bean对象之后可以使用bean
(5)当容器关闭的时候,调用bean的销毁的方法(需要进行配置销毁的方法)
3.测试bean生命周期
(1)实现的类和相关方法
public class Orders {
private String ordersName;
//使用无参构造器
public Orders() {
System.out.println("第一步:通过无参构造器创建bean实例");
}
//为bean的属性设置值
public void setOrdersName(String ordersName) {
this.ordersName = ordersName;
System.out.println("第二步:通过set方法,为bean的属性设置值");
}
public String getOrdersName() {
return ordersName;
}
//创建执行bean的初始化方法
public void initMethod() {
System.out.println("第三步:执行初始化的方法");
}
//创建销毁bean的初始化方法
public void desMethod() {
System.out.println("第五步:执行销毁的方法");
}
(2)xml配置文件
<bean id="orders" class="com.sst.spring5.bean.Orders"
init-method="initMethod" destroy-method="desMethod">
<property name="ordersName" value="电脑"></property>
</bean>
(3)测试
public class TestOrders {
@Test
public void testOrders() {
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("bean07.xml");
Orders orders = context.getBean("orders", Orders.class);
//获取对象
System.out.println("第四步:获取创建的bean对象实例");
System.out.println(orders);
System.out.println("OrdersName:" + orders.getOrdersName());
//手动销毁对象
context.close();
}
}
(4)执行结果
第一步:通过无参构造器创建bean实例
第二步:通过set方法,为bean的属性设置值
第三步:执行初始化的方法
第四步:获取创建的bean对象实例
com.sst.spring5.bean.Orders@7880cdf3
OrdersName:电脑
第五步:执行销毁的方法
4.加上bean的后置处理器,bean的生命周期有7步
(1)通过构造器创建bean实例(使用无参构造器)
(2)为bean的属性设置值和对其他bean引用(通过set方法)
(3)把bean的实例传递给后置处理器的postProcessBeforeInitialization方法
(4)调用bean的初始化方法(需要进行配置)
(5)把bean的实例传递给后置处理器的postProcessAfterInitialization方法
(6)获取到bean对象之后可以使用bean
(7)当容器关闭的时候,调用bean的销毁的方法(需要进行配置销毁的方法)
5.演示添加后置处理器后的效果
(1)创建类后实现BeanPostProcessor接口,创建后置处理器
public class Post implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("在初始化前执行的方法");
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("在初始化后执行的方法");
return bean;
}
}
<!--配置后置处理器-->
<bean id="post" class="com.sst.spring5.bean.Post"></bean>
(2)创建后置处理器之后的执行结果
第一步:通过无参构造器创建bean实例
第二步:通过set方法,为bean的属性设置值
在初始化前执行的方法
第三步:执行初始化的方法
在初始化后执行的方法
第四步:获取创建的bean对象实例
com.sst.spring5.bean.Orders@10e92f8f
OrdersName:电脑
第五步:执行销毁的方法