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