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