[4001] 生命周期回調方法應遵循如下規則:
1.對于直接定義在Bean類中的回調,其格式應該是public void <Method()>。
2.對于Bean類單獨提供(單個或多個)回調監聽器類(攔截器)而言,其格式是public void<METHOD(InvocationContext ctx)>。java.interceptor.InvocationContext提供了調用上下文信息。
3.不能夠拋出應用異常,但可以拋出運行期異常。如果在事務中拋出了運行期異常,事務將回滾。
4.不能夠為回調監聽器實施依賴注入。
注釋 |
描述 |
典型實現(無狀態) |
典型實現(有狀態) |
@PostConstruct |
在實例化Bean類后,Ejb容器會調用它 |
根據Bean實例的需求來完成相應的初始化工作,比如將傳入的參數值賦給成員變量。 |
根據Bean實例的需求來完成相應的初始化工作,比如將傳入的參數值賦值給成員變量。 |
@PrePassivate |
在掛起Bean實例前,容器會立即調用它(由于內存中存在太多的Bean實例,因此需要將會話狀態保存到磁盤中) |
未使用。 |
釋放Bean實例可能持有的任何資源。 |
@PostActivate |
在激活Bean實例后,容器會立即調用它(由于客戶需某Bean實例,因此需要將以前的會話狀態交換到內存中) |
未使用。 |
Bean實例重新獲得所需要的任何資源,比如哪些在執行@PrePassivate回調期間釋放的資源。 |
@PreDestroy |
在結束對@Remove方法的調用之后,而在銷毀Bean實例之前,Ejb容器會立即調用它 |
為銷毀Bean實例做準備。釋放已分配給它的所有資源。 |
為銷毀Bean實例做準備。釋放已分配給它的所有資源。 |
</script>