Spring應用程序中是否有方法知道初始化完成?一旦部署了我的應用程序,我必須運行一些代碼,並且我正在搜索諸如ServletContextListener或Spring built-in events。運行代碼一旦Spring應用程序成功部署
回答
根據你對我評論的迴應,我會回覆你可以做的多件事來處理一個初始化的Spring bean。
- 您可以使用
BeanPostProcessor
。它有兩種被視爲回調的方法,我相信postProcessAfterInitialization
是您感興趣的那個。BeanPostProcessor
的事情是它們針對ApplicationContext
中的每個bean運行,所以您需要確定只查找您有興趣應用此處理的bean。要使用BeanPostProcessor
,只需將其定義爲ApplicationContext
的一部分即可。 - 執行
InitializingBean
接口。它定義了由ApplicationContext
調用的單個方法afterPropertiesSet
。這比1號具有優勢,因爲它可以逐個bean地應用(不適用於ApplicationContext
中的所有bean)。 - 在方法上使用
@PostContstuct
註釋。這個註解告訴ApplicationContext
這個方法應該在bean初始化後運行。這與2號相似,因爲它是以豆爲基礎進行的。
有關ApplicationContext
的回調生命週期的更多信息,請參閱this location。
其實我沒有豆子。一旦數據庫連接建立,我只想設置一些數據庫記錄。我可以定義一個服務或一個組件,但是在設置這個記錄後,我不需要服務/組件,我不知道將它保留在那裏是個好主意。什麼是最好的選擇來做到這一點? –
您可以創建一個唯一功能是執行此操作的bean。那是我會做的。 –
是的,我認爲這是最好的選擇。我可以在執行它之後刪除實例還是不必要? –
您可以使用
@PostConstruct
註釋- 或得到由
ContextStartedEvent
觸發(但如果你有你有兩個背景和於是兩個ContextStartedEvent
個典型的web應用照顧ApplicationListener
。
我認爲一旦應用程序開始部署,就會啓動ContextStartedEvent。我會試試看。只是一個問題。我有主要背景和根環境,我如何區分它們? Hibernate連接在root-context中定義。 –
我一直在尋找ContextStartedEvent,並且我讀過使用start()開始ApplicationContext時發佈的這個事件,所以我不能使用它。不管怎麼說,還是要謝謝你。 –
爲什麼你不能使用它?你寫道:「初始化完成後?」 - 這應該是引發「ContextStartEvent」的地方。 – Ralph
- 1. 在Spring MVC應用程序部署上運行代碼
- 2. Spring應用程序部署
- 3. 代碼不工作一旦部署
- 4. Spring 3.1 + Hibernate 4.1 - 在webapp完成部署之前運行代碼
- 5. 一旦部署在MeteorJS雲上,MeteorJS應用程序無法運行
- 6. 運行外部代碼/應用程序的Android應用程序?
- 7. 在Microcat Foundry中運行的Mongodb中部署Spring應用程序
- 8. 角4應用程序不工作,一旦部署到IIS 8.5
- 9. 運行GUI應用程序作爲BuildMaster部署的一部分
- 10. Spring應用程序Jenkins部署環境
- 11. Spring引導應用程序 - Tomcat部署
- 12. 部署spring-mvc應用程序失敗
- 13. Spring mvc tomcat應用程序部署
- 14. 在Heroku上部署Spring應用程序
- 15. 我在heroku上部署Django應用程序,部署成功後,我開始運行了。Error
- 16. 部署代碼第一個應用程序到AppHarbor
- 17. 一旦Web應用程序與Apache部署,Popen的意外行爲
- 18. 在一個tomcat上部署和運行兩個應用程序
- 19. 部署一個Grails應用程序的運行Tomcat
- 20. 無法運行一次部署的WebSphere MQ應用程序
- 21. 通過應用程序運行代碼
- 22. 運行Android應用程序的代碼
- 23. Rails + Capistrano + Git:成功部署應用程序的步驟?
- 24. 在heroku上部署Django應用程序。誰已經成功了?
- 25. ClickOnce部署錯誤:應用程序驗證沒有成功
- 26. 部署到heroku成功但應用程序未出現
- 27. 如何確保成功部署應用程序?
- 28. 成功部署在Tomcat上的應用程序,但404錯誤
- 29. 在OpenShift Tomcat上部署後無法運行Spring MVC Web應用程序?
- 30. 我的分數和功能不程序一旦運行工作
你是否需要初始化整個應用程序,或者只是初始化一個特定的bean? –
的確,我只需要與嵌入式數據庫連接來添加一些記錄。所以,我的一個服務的自動佈線實例。 –