Java 在加载应用程序上下文之前启动Servlet

Java 在加载应用程序上下文之前启动Servlet,java,spring,tomcat,servlets,Java,Spring,Tomcat,Servlets,我有一个servlet,它作为我的应用程序的一部分捆绑在一起。我希望能够在应用程序上下文最终初始化之前,将Tomcat或Spring配置为在boostrap上加载这个servlet 我这样做是因为-在实际上下文被触发之前,我正在使用servlet进行一些初始环境检查和文件加载 有人知道这样做有什么好处吗 我添加了如下servlet定义: <servlet> <servlet-name>init-class</servlet-name

我有一个servlet,它作为我的应用程序的一部分捆绑在一起。我希望能够在应用程序上下文最终初始化之前,将Tomcat或Spring配置为在boostrap上加载这个servlet

我这样做是因为-在实际上下文被触发之前,我正在使用servlet进行一些初始环境检查和文件加载

有人知道这样做有什么好处吗

我添加了如下servlet定义:

    <servlet> 
            <servlet-name>init-class</servlet-name>
            <servlet-class>package.initClass</servlet-class>
            <load-on-startup>0</load-on-startup> 
    </servlet>

初始化类
package.initClass
0

只有在应用程序上下文完成加载后,才会触发此操作。

可能是您要查找的内容

可能是您要查找的内容

您需要将此初始化逻辑放入servlet而不是servlet中,并在
web.xml
中声明为

<listener><listener-class>YourListenerClass</listener-class></listener>
YourListenerClass

另外,如果Spring上下文是由
ContextLoaderListener
加载的,那么您的侦听器应该在它前面的
web.xml
中声明,因为侦听器是按声明顺序启动的。

您需要将此初始化逻辑放入servlet而不是servlet中,并在
web.xml
中声明为

<listener><listener-class>YourListenerClass</listener-class></listener>
YourListenerClass

另外,如果Spring上下文是由
ContextLoaderListener
加载的,那么您的侦听器应该在它前面的
web.xml
中声明,因为侦听器是按声明顺序启动的。

您指的是哪个appcontext?另一个servlet?我指的是Spring应用程序上下文,它保存了我所有的bean连接。在这里您需要做什么?还有什么没有被激发-servlet的init()方法?这个appcontext是如何连接的?使用
DispatcherServlet
,或
ContextLoaderListener
?一切正常!我的问题是他们被解雇的顺序。我希望在启动spring上下文之前,首先启动initClass.java来执行一些基本的文件加载和环境检查。您指的是哪个appcontext?另一个servlet?我指的是Spring应用程序上下文,它保存了我所有的bean连接。在这里您需要做什么?还有什么没有被激发-servlet的init()方法?这个appcontext是如何连接的?使用
DispatcherServlet
,或
ContextLoaderListener
?一切正常!我的问题是他们被解雇的顺序。我希望在启动spring上下文之前,首先启动initClass.java来执行一些基本的文件加载和环境检查。有没有办法在初始化上下文之前运行代码?ServletContextListener有2个方法。contextInitialized方法在初始化上下文后运行,contextDestroyed方法在销毁上下文后运行。我想要一个在上下文参数初始化之后和Spring侦听器启动之前运行的方法。有没有办法在上下文初始化之前运行代码?ServletContextListener有2个方法。contextInitialized方法在初始化上下文后运行,contextDestroyed方法在销毁上下文后运行。我想要一个在上下文参数初始化之后和Spring侦听器启动之前运行的方法。