从JavaEE5开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct与@PreDestory,这两个注解用来修饰一个非静态的void()方法,而且这个方法不能抛出异常声明。使用注解修饰方法的时候可以写在方法的前面,也可以写在返回类型或者void的前面。
@PostConstruct
public void someMethod(){....}
public @PreDestroy void anothedMethod(){....}
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的init()方法,PostConstruct从字面上将有“在构造函数之后运行”的意思,事实上,被@PostConstruct修饰的方法构造函数之后、init()方法之前运行。
被@PreDestory修饰的方法会在服务器卸载Servlet的时候运行,并且之后被服务器调用一次,类似于Servlet中的destory()方法,虽然PreDestory字面意思是在destory之前运行,但是被@PreDestory修饰的方法会在destory方法运行之后运行,在Servlet被彻底卸载之前,PreDestory里的Destory指的是Servlet的销毁,而不是destory()方法。