bean的生命周期在spring学习中是比较重要的一部分内容,而且也是面试中大概率会问到的点,今天的这篇文章诸位不容错过。小编在前面的文章:Spring — IOC 容器 之 Bean管理XML方式(创建对象) 讲解过如何创建bean,今天来详细演示一下bean的生命周期,即bean的创建,销毁的过程。
1,bean 的生命周期:
第1步,调用无参构造函数构造对象
第2步,调用set方法初始化对象,注入属性值
第3步,执行初始化方法
第4步,获取创建的bean实例对象
User{name='ppkk'}
第5步,执行销毁方法
2,代码演示:
(1)xml 配置文件:BeanConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 实体bean-->
<!-- init-method 和 destroy-method 属性指明自定义的实体bean初始化和销毁方法-->
<bean id="user" class="com.chaoge.nacos.demo.test.spring.entity.User" init-method="initMethod" destroy-method="destroyMethod">
<property name="name" value="ppkk"/>
</bean>
(2)实体类:User
public class User {
public User() {
System.out.println("第1步,调用无参构造函数创建bean实例");
}
private String name;
public void setName(String name) {
this.name = name;
System.out.println("第2步,调用set方法设置属性值");
}
// 自定义bean初始化方法
public void initMethod() {
System.out.println("第3步,执行初始化方法");
}
// 自定义bean销毁方法
public void destroyMethod() {
System.out.println("第5步,执行销毁方法");
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
(3)调用:
public class BeanTest {
@Test
public void test6(){
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("com/chaoge/nacos/demo/test/spring/beanConfig/BeanConfig.xml");
User user = context.getBean("user", User.class);
System.out.println("第4步,获取创建的bean实例对象");
System.out.println(user);
//调用销毁方法
context.close();
}
}
(4)输出:
D:\jdk\jdk1.8.0_171\bin\java.exe
第1步,调用无参构造函数构造对象
第2步,调用set方法初始化对象,注入属性值
beanPostProcessor 后置处理器方法before
第3步,执行初始化方法
beanPostProcessor 后置处理器方法after
第4步,获取创建的bean实例对象
User{name='ppkk'}
第5步,执行销毁方法