1、從Java EE 5規范開始,Servlet中增加了兩個影響Servlet生命周期的注解(Annotion);@PostConstruct和@PreDestroy。這兩個注解被用來修飾一個非靜態的void()方法 。寫法有如下兩種方式:
@PostConstruct Public void someMethod() {}
或者
public @PostConstruct void someMethod(){}
被@PostConstruct修飾的方法會在服務器加載Servle的時候運行,並且只會被服務器執行一次。PostConstruct在構造函數之后執行,init()方法之前執行。PreDestroy()方法在destroy()方法執行執行之后執行,流程如下:
被注解的Servlet生命周期
需要注意的是,注解會多多少少地影響到服務器的啟動速度。服務器在啟動時候會遍歷Web 應用的WEB-INF/classes下的所有class文件與WEB-INF/lib下的所有jar文件,以檢查哪些類使用了注解。如果應用程序中沒有 使用任何注解,可以在Web.xml中設置的metadata-complete屬性為true.(支持@PostConstruct和 @PreDestroy的服務器需要支持Servlet2.5規范。Tomcat5.x僅支持Servlet2.4規范。)
2、作用。
在的servlet初始化加載之前做一些初始化任務,示例如下: