Spring Process自动运行

时间:2014-06-22 20:48:56

标签: java spring spring-integration

我有一个春天的问题,这可能是春天的一般问题,但它更具体地适用于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>

提前致谢

2 个答案:

答案 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。您可以实现此接口,如果您只有很少的任务可以运行,那么您可以根据每个侦听器接口的实现划分任务,然后您就可以打开/关闭您实际需要的那些侦听器。