Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,您既可以通过实现 InitializingBean/DisposableBean 接口来定制初始化之后 / 销毁之前的操作方法,也可以通过 <bean> 元素的 init-method/destroy-method 属性指定初始化之后 / 销毁之前调用的操作方法

JSR-250 为初始化之后/销毁之前方法的指定定义了两个注释类,分别是 @PostConstruct 和 @PreDestroy,这两个注释只能应用于方法上


@PostConstruct

标注了 @PostConstruct 注释的方法将在类实例化后调用



@PreDestroy

标注了 @PreDestroy 的方法将在类销毁之前调用


只需要在方法前标注 @PostConstruct 或 @PreDestroy,这些方法就会在 Bean 初始化后或销毁之前被 Spring 容器执行了

import javax.annotation.Resource;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

public class MyTest {

@PostConstruct
public void postConstruct1() {
System.out.println("初始化");
}

@PreDestroy
public void preDestroy1() {
System.out.println("销毁");
}
}



回到顶部