spring bean的初始化/销毁顺序

参考https://blog.csdn.net/xiaolyuh123/article/details/61196044

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

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

public class InitBeanAndDestroyBean implements InitializingBean, DisposableBean {
    public String say() {
        return "Hello!" + this.getClass().getName();
    }

    public InitBeanAndDestroyBean() {
        System.out.println("执行InitBeanAndDestroyBean构造方法");
    }

    @Override
    public void destroy() throws Exception {
        System.out.println("接口-执行InitBeanAndDestroyBeanTest:destroy方法");
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("接口-执行InitBeanAndDestroyBeanTest:afterPropertiesSet方法");
    }

    @PostConstruct
    public void postConstructstroy() {
        System.out.println("注解-执行InitBeanAndDestroyBeanTest:PostConstruct");
    }

    @PreDestroy
    public void preDestroy() {
        System.out.println("注解--执行InitBeanAndDestroyBeanTest:preDestroy方法");
    }

    public void initMethod() {
        System.out.println("XML配置-执行InitBeanAndDestroyBeanTest:init-method方法");
    }

    public void destroyMethod() {
        System.out.println("XML配置-执行InitBeanAndDestroyBeanTest:destroy-method方法");
    }
}

从执行结果可以看出:

Bean在实例化的过程中:Constructor > @PostConstruct >InitializingBean > init-method
Bean在销毁的过程中:@PreDestroy > DisposableBean > destroy-method

猜你喜欢

转载自blog.csdn.net/u011649691/article/details/81109643