参考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