首页 > 代码库 > 8 -- 深入使用Spring -- 2...4 使用@PostConstruct和@PreDestroy定制生命周期行为

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

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

}

啦啦啦

啦啦啦

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