·@PostConstruct:當bean對象完成實例化后,使用了這個注釋的方法會被立即調用。這個注釋同時適用于
有狀態和無狀態的會話bean。

·@PreDestroy:使用這個注釋的方法會在容器從它的對象池中銷毀一個無用的或者過期的bean 實例之前調
用。這個注釋同時適用于有狀態和無狀態的會話bean。

·@PrePassivate:當一個有狀態的session bean實例空閑過長的時間,容器將會鈍化(passivate)它,并把它的
狀態保存在緩存當中。使用這個注釋的方法會在容器鈍化bean實例之前調用。這個注釋適用于有狀態的會話bean。
當鈍化后,又經過一段時間該bean 仍然沒有被操作,容器將會把它從存儲介質中刪除。以后,任何針對該bean
方法的調用容器都會拋出例外。

·@PostActivate:當客戶端再次使用已經被鈍化的有狀態session bean時,新的實例被創建,狀態被恢復。
使用此注釋的session bean會在bean的激活完成時調用。這個注釋只適用于有狀態的會話bean。

·@Init:這個注釋指定了有狀態session bean初始化的方法。它區別于@PostConstruct注釋在于:多個@Init
注釋方法可以同時存在于有狀態session bean 中,但每個bean實例只會有一個@Init注釋的方法會被調用。這取
決于bean是如何創建的(細節請看EJB 3.0規范)。@PostConstruct在@Init之后被調用。

另一個有用的生命周期方法注釋是@Remove,特別是對于有狀態session bean。當應用通過存根對象調用使用了
@Remove注釋的方法時,容器就知道在該方法執行完畢后,要把bean實例從對象池中移走。

我寫了一個statful Session bean.需要等待9分鐘左右,容器才會鈍化此會話Bean。。。。。
然后經證明,statfulBean的鈍化時間是10分鐘,完全銷毀差不多要15分鐘。。。Jboss是個愚蠢的東西
還沒有找到相應的文檔說明這一問題的,因為鈍化后GC不會馬上來收,這就導致可能會有潛在的內存泄露問題了。

我只用到JBoss,不知道有沒有用Weblogic的朋友是不是也有同樣的問題?