我的代码结构为 Spring bean 和它们之间的依赖关系。这只是代码的一小部分,因为其余的是“遗留”代码。
在这个时间点上,我想对扩展的现有“遗留”类中的这些 bean 之一执行操作javax.servlet.ServletContextListener
。此类初始化应用程序,其代码仅被调用一次。
我最好的做法是什么?
谢谢!
我的代码结构为 Spring bean 和它们之间的依赖关系。这只是代码的一小部分,因为其余的是“遗留”代码。
在这个时间点上,我想对扩展的现有“遗留”类中的这些 bean 之一执行操作javax.servlet.ServletContextListener
。此类初始化应用程序,其代码仅被调用一次。
我最好的做法是什么?
谢谢!
您可以通过以下方式获取 Spring Context:
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContextEvent.getSevletContext())
然后你可以调用 ctx.getBean("name"); (还有更多 - 检查 WebApplicationContext 的 javadocs 及其父级)
Spring bean 的扩展实际上没有任何意义ServletContextListener
,因为 bean 不听 servlet 上下文。如果您想使用与应用程序一起初始化和销毁的 bean,那么在 Spring 中有很多方法可以做到这一点。请参阅文档的这一部分。