我有一个春天的问题,这可能是春天的一般问题,但它更具体地适用于Spring Integration Poller。
基本上,当我启动应用程序时,我希望所有的spring配置都被加载 - 所以我可以快速得到任何错误/失败,而不是当有人试图第一次调用特定的bean等时。这部分是这样我的spring Integration poller就会在应用程序启动时立即开始轮询,而不仅仅是在发布消息之后(因为可能会重新尝试旧消息等)
我一直在搜索并看到使用“BeanFactory”与“ApplicationContext”的提及 - 但这些示例似乎总是围绕初始化进行代码驱动,但我的应用程序是在web.xml的xml配置中定义的,我知道。
我错过了一些非常明显的东西吗?或者任何人都可以指导我正确的方向吗?
我的servlet定义如下,如果这有助于任何:
<servlet>
<servlet-name>myservletname</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/context.xml</param-value>
</init-param>
</servlet>
提前致谢
答案 0 :(得分:1)
我想我已经解决了这个问题。
似乎通过在我的servlet元素中提供以下内容 - 它似乎表现得像我预期的那样
<load-on-startup>1</load-on-startup>
现在是这样的:
<servlet>
<servlet-name>myservletname</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
答案 1 :(得分:1)
您也可以使用ServletContextListener。您可以实现此接口,如果您只有很少的任务可以运行,那么您可以根据每个侦听器接口的实现划分任务,然后您就可以打开/关闭您实际需要的那些侦听器。