2
A
回答
0
回調是您在EJB(或容器的生命週期)的特定位置執行自定義代碼的主要機會。
所以,舉個例子,你要初始化特定字段或組件
- 內的EJB,
- 後的EJB已被實例化,但
- 纔開始以服務請求
您'將執行@PostConstruct
回調方法。用這個方法註釋的方法是向JavaEE運行時發佈的廣告,該方法必須在創建該類的實例後立即運行。此註釋的常見用法是將類級別的變量安裝或準備共享資源。
JavaEE規範已經將諸如此類的幾個註釋指定爲生命週期回調。這意味着在啓動時,容器知道要掃描部署工具包中是否存在實現任何可用回調的工件。這樣做時,它知道通知感興趣的組件(EJB,CDI組件,JAX-WS bean實現)特定事件,或者在應用程序服務器中發生特定操作時調用特定方法。
回撥機制本身的回調模式的實現(或事件驅動編程,如果你從一個UI編程世界未來)
延伸閱讀:
0
正式定義
回調是由企業Bean的生命週期可以攔截機制。
一個實際的例子
我想一個例子可以幫助炫耀這些回調標註的實用性。我們來看看@PreDestroy
的回調。從EJB上的JBoss文檔中,我們可以看到:
PreDestroy - 當bean從池中刪除或銷燬時調用。
而且你有一個擁有某種文件資源的Bean。你想確保當Bean被銷燬時,該文件鎖定與它一起。那麼,我們知道等待垃圾收集者爲我們處理這些事情是「冒險的」做法;我們不知道它何時會運行。
但是我們可以做的是放置一些當bean被移除時調用的邏輯。
@PreDestroy
public void cleanUp() {
// Clean up your FileOutputStreams etc.
}
在你的bean中,很明顯的是這個方法在bean被銷燬時執行,並且它不需要額外的代碼。這可以確保在bean被銷燬時清理資源。
相關問題
- 1. 什麼是仿函數,爲什麼我們需要它們?
- 2. 裝配需要什麼?爲什麼我們使用它們?
- 3. 什麼是R中的因子,爲什麼我們需要它
- 4. Windows上的Spark - 什麼是winutils,爲什麼我們需要它?
- 5. ELF文件 - 什麼是部分,爲什麼我們需要它?
- 6. 什麼是mcrypt,爲什麼和我們需要它在哪裏?
- 7. Maven快照究竟是什麼,爲什麼我們需要它?
- 8. 什麼是伴侶對象,爲什麼我們需要它?
- 9. 模型中有什麼?爲什麼我們需要使用它
- 10. DavLockDB:我們需要什麼?
- 11. C#代表,爲什麼我們需要它們?
- 12. 什麼是OWASP?爲什麼我們需要這個?
- 13. 什麼是jquery noConflict,爲什麼我們需要這個?
- 14. 什麼是__i686.get_pc_thunk.bx?我們爲什麼需要這個電話?
- 15. 爲什麼我們需要的unitName在PersistenceContext注入在EJB
- 16. 爲什麼我們需要simple_one_for_one?
- 17. 爲什麼我們需要TensorFlow tf.Graph?
- 18. 爲什麼我們需要使用prompt.start()?
- 19. 爲什麼我們需要scalaz.stream迭代?
- 20. 爲什麼我們需要WCF
- 21. 爲什麼我們需要Anaconda 2.7?
- 22. 爲什麼我們需要編寫log.isDebugEnabled?
- 23. 爲什麼我們需要ng-click?
- 24. 爲什麼我們需要Control.Lens.Reified?
- 25. 我們爲什麼需要纖維
- 26. 爲什麼我們需要org.junit.ComparisonFailure?
- 27. 爲什麼我們需要addRequestHeader方法?
- 28. 爲什麼我們需要時代?
- 29. 爲什麼我們需要ContinueWith方法?
- 30. 爲什麼我們需要Java NIO Selector?