[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>