我正在使用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. 在Android应用程序中使用生命周期方法
- 3. servlet生命周期
- 4. ASP.NET应用程序生命周期 - 非页面生命周期
- 5. 方法论和生命周期的现实生活实例
- 6. 什么是Android应用程序生命周期方法? (不是活动生命周期方法。)
- 7. Android生命周期方法通常应实施哪些应用程序
- 8. Web应用程序中Hibernate对象的典型生命周期 - ?
- 9. 生命周期方法杀死一个应用程序?
- 10. Tomcat应用程序生命周期
- 11. Asp.NET Global.asax - 应用程序生命周期
- 12. App Engine servlet生命周期
- 13. iphone应用程序的生命周期?
- 14. GWAN servlet的生命周期
- 15. ASP .NET应用程序生命周期+ Singleton实例寿命
- 16. 在整个应用程序生命周期中只调用一次方法
- 17. Spring事务中的Hibernate实体生命周期和会话生命周期
- 18. Android生命周期方法
- 19. 片段生命周期方法序列
- 20. 来自浏览器的Servlet非生命周期方法调用
- 21. VB.NET:在应用程序的生命周期中只运行一次方法
- 22. 在Android应用程序生命周期中缓存数据的好方法?
- 23. 当Android中出现“ANR(应用程序未响应)”时,会调用哪种方法(在Android生命周期中)?
- 24. 管理实时磁贴和应用程序生命周期
- 25. 谷歌应用程序引擎实例的生命周期
- 26. 如何在Web应用程序中使用db4o IObjectContainer? (容器的生命周期?)
- 27. 组件完全呈现时的反应生命周期方法
- 28. 在应用程序生命周期中何处删除委托?
- 29. Alamofire在应用程序生命周期中阻止请求
- 30. Spring bean和应用程序生命周期中更改bean参数
我想也许我可以在控制器的InitializingBean afterPropertiesSet()方法内使用getServletContext()来确定我是否作为一个servlet运行。这会在容器外引发异常,所以我可以使初始化步骤有条件。它的工作原理,但它似乎是一个黑客。 – 2011-02-17 19:27:04