8.2.4 使用@PostConstruct和@PreDestroy定制生命周期行为
@PostConstruct 和 @PreDestroy 同样位于javax.annotation 包下,也是来自Java EE 规范的两个Annotation,Spring直接借鉴了它们,用于定制Spring容器中Bean的生命周期行为。
@PostConstruct : 类似于<bean.../>元素中init-method属性的功能。用于修饰方法使之成为Bean的初始化方法;
@PreDestroy : 类似于<bean.../>元素中destroy-method属性的功能。用于修饰方法使之成为Bean销毁之前的方法。
package edu.pri.lime._8_2_4.bean.impl; import org.springframework.stereotype.Component; import edu.pri.lime._8_2_4.bean.Axe;
import edu.pri.lime._8_2_4.bean.Person; @Component
public class Chinese implements Person { @Resource(name="steelAxe")
private Axe axe; /*可以让Spring在该Bean的依赖关系注入完成之后回调该方法*/
@PostConstruct
public void init(){
System.out.println("正在执行初始化的init方法...");
}
/*可以让Spring在销毁该Bean之前回调该方法*/
@PerDestroy
public void close(){
System.out.println("正在执行销毁之前的close方法...");
}
public void useAxe() {
System.out.println(axe.chop());
} }
啦啦啦
啦啦啦