@PostConstruct和@PreDestroy是JSR250里面的注解;(还有@Resource)
JSR250规范:
JSR是 Java Specification Requests 的缩写,意思是Java 规范提案。是指向 JCP (Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。(来自百度百科)
新增一个标准化技术规范的正式请求,例如创建对象之前可以做什么,销毁一个对象之前可以做什么等一系列的操作规范;
@PostConstruct和@PreDestroy都是属于Bean生命周期的一部分;
-
@PostConstruct:在bean创建完成并且属性赋值完成之后来执行初始化方法;
-
@PreDestroy:在容器销毁bean之前执行的方法,例如一些清理工作,关流等;
例子:
public class Dog {
public Dog() {
System.out.println("dog constructor...");
}
@PostConstruct
public void init(){
System.out.println("dog init...");
}
@PreDestroy
public void destroy(){
System.out.println("dog destroy");
}
}
//注册类
@Configuration
public class MainConfigOfLifeCycle {
@Bean
public Dog dog(){
return new Dog();
}
}
//测试
@Test
public void test01(){
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfLifeCycle.class);
System.out.println("创建容器完成!");
//关闭容器
applicationContext.close();
}
//打印
dog constructor...
dog init...
创建容器完成!
dog destroy