Annotation可以用來在Session Bean的生命周期 (life-cycle) 中,定義那些方法會因應相關事件而被呼叫,相關的Annotations如下表:
Annotaion
|
Comments
|
@PostConstruct |
- 在EJB實體被建立之後,而開始被使用之前
- 可以用來做一些初始化的工作
- EJB 3.1 spec建議使用此來做初始化,而不是用建構方法
|
@PreDestroy |
- 在EJB實體被容器停止服務之前被呼叫
- 可以用來清除或釋放一些被EJB實體使用的資源
- 當EJB實例丟出系統錯誤 (system exception) 時、容器毀損,或當Stateful session bean狀態為非活化 (passivated) 中而發生過時 (timeout)時,有此annotation的方法將不會被呼叫
|
@PrePassivate |
- 當Stateful session bean狀態將轉為非活化 (passivated) 之前被呼叫
- 可以讓活化時的EJB實例所使用的資源得以釋放,並對一些非序列化的參照物件做序列化 (serialization)的處理
|
@PostActivate |
- 當Stateful session bean狀態將轉為活化 (passivated) 之前被呼叫
- 用以獲得一些需要使用到的資源
- 對所參照的物件做反序列化的設定
|
ps. 翻得不好,請有需要的朋友還是參考原文或EJB spec。
節錄自:
http://www.slideshare.net/krizsan/ocp-jbcd-6-study-notes,p.253
沒有留言:
張貼留言