8 -- 深入使用Spring -- 2...4 使用@PostConstruct和@PreDestroy定制生命周期行为

时间:2023-03-08 19:04:07

      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());
} }

啦啦啦

啦啦啦