前言
从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法,并且被修饰的方法不能抛出异常
案例
@PostConstruct写法有如下两种方式:
@PostConstruct
public void method(){}
public @PostConstruct void method(){}
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的init()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。
服务器加载Servlet过程:
另外,spring中Constructor、@Autowired、@PostConstruct的顺序:
其实从依赖注入的字面意思就可以知道,要将对象B注入到对象A,那么首先就必须得生成对象A和对象B