bean生命周期:
创建、初始化、使用、销毁
方式一:
xml方式,代码如下:
init-method="myInit" destory-method="myDestroy"
注解:
@Bean(value="stu", initMethod="myInit", destoryMethod="myDestroy")
public Student myStudent(){
Student student = new Student(10, "zs10", 23);
Address address = new Address("xa02", "bj02");
student.setAddress(address);
return student;
}
public class Student {
private String name;
private Address address;
public Student(String name, Address address) {
this.name = name;
this.address = address;
}
private void myInit() {
System.out.println("bean初始化了");
}
private void myDestroy(){
System.out.println("bean销毁了");
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", address=" + address +
'}';
}
}
方式二:
适用三层注解形式
java规范:JSR250
@PostConstrcut:相当于init
@PreDestroy:相当于destroy
步骤:
1、在相应的组件上加上@Component注解
2、在init方法加上@PostConstruct
3、在destroy方法加上@PreDestroy
方法三:
接口:适用于三层组件(扫描器+三层组件)
InitializingBean 初始化
DisposableBean 销毁
初始化:只需要实现InitialzingBean中的afterPropertiesSet()方法
销毁:实现DisposableBean中的destroy()方法
方法四:(给容器中所有bean加init和destroy方法)一个接口
接口:适用于三层组件
接口BeanPostProcessor:拦截了所有的bean
对需要改变初始化的bean进行操作