我正在使用Spring實現一個Web應用程序。我使用Spring的ContextLoaderListener來加載我的應用程序上下文,並使用Spring的DispatcherServlet從{name} -servlet.xml加載相關的bean,它們引用主應用程序上下文中的bean。我希望能夠在容器外部集成測試這些Spring配置,以在部署到Tomcat之前驗證所有部件是否正確連接。但是,我的應用程序在容器中運行時需要一些預定的後臺處理。在一個普通的HttpServlet中,我只需實現init()和destroy()。我讀過的所有建議都建議使用InitializingBean進行這種初始化。然而,如果我使用InitializingBean,afterPropertiesSet()被調用,無論我是在容器內部還是在集成測試中 - 並且在容器外部,我都無法訪問後臺任務需要的資源。有沒有更好的方法來執行我通常在init()和destroy()中執行的任務,以便它們只能在部署爲webapp時運行?在Spring Web應用程序中實現servlet生命週期方法?
1
A
回答
1
您是否考慮過使用測試彈簧配置文件來覆蓋實現後臺進程的bean?
通過這種方式,除了重寫的bean之外,Spring配置中的其他所有東西都能正常工作。
+0
我很喜歡這個想法。它與我正在做的其他事情非常吻合,包括初始化Bean以將測試數據加載到數據庫中,並且它使代碼中的測試細節保持不變。謝謝! – 2011-02-22 18:28:55
相關問題
- 1. 在Servlet abour Servlet生命週期方法
- 2. Ruby Web應用程序生命週期
- 3. 在Android應用程序中使用生命週期方法
- 4. servlet生命週期
- 5. ASP.NET應用程序生命週期 - 非頁面生命週期
- 6. 方法論和生命週期的現實生活實例
- 7. 什麼是Android應用程序生命週期方法? (不是活動生命週期方法。)
- 8. Web應用程序中Hibernate對象的典型生命週期 - ?
- 9. Android生命週期方法通常應實施哪些應用程序
- 10. 生命週期方法殺死一個應用程序?
- 11. Tomcat應用程序生命週期
- 12. 播放應用程序生命週期
- 13. Asp.NET Global.asax - 應用程序生命週期
- 14. 應用程序生命週期問題
- 15. iphone應用程序的生命週期?
- 16. WP7應用程序生命週期
- 17. App Engine servlet生命週期
- 18. GWAN servlet的生命週期
- 19. servlet生命週期while loadOnStartup
- 20. ASP .NET應用程序生命週期+ Singleton實例壽命
- 21. 在整個應用程序生命週期中只調用一次方法
- 22. Spring事務中的Hibernate實體生命週期和會話生命週期
- 23. Android生命週期方法
- 24. 片段生命週期方法序列
- 25. 來自瀏覽器的Servlet非生命週期方法調用
- 26. VB.NET:在應用程序的生命週期中只運行一次方法
- 27. 在Android應用程序生命週期中緩存數據的好方法?
- 28. 當Android中出現「ANR(應用程序未響應)」時,會調用哪種方法(在Android生命週期中)?
- 29. 現代UI應用程序頁面生命週期
- 30. Android應用程序類 - 現場成員的生命週期
我想也許我可以在控制器的InitializingBean afterPropertiesSet()方法內使用getServletContext()來確定我是否作爲一個servlet運行。這會在容器外引發異常,所以我可以使初始化步驟有條件。它的工作原理,但它似乎是一個黑客。 – 2011-02-17 19:27:04