繁体   English   中英

WAR文件的主要方法是什么?

[英]What is the main method of a WAR file?

最近,我重新打包了我的java spring应用程序,成为一个用于在tomcat中部署的WAR文件。 经过一些测试后我注意到,没有执行public static void main(String[] args) 我的应用程序的一些必要初始化是在main完成的。 在WAR文件中是否有类似main方法的东西? 在WAR文件中运行某些初始化的适当位置是什么?

您可以向web.xml文件添加侦听器:

<listener>
    <description>Application startup and shutdown events</description>
    <display-name>Test</display-name>
    <listener-class>com.package.package.StartClass</listener-class>
</listener>

public class StartClass implements ServletContextListener {

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
         //Context destroyed code here
    }

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent)
    {
        //Context initialized code here
    }
}

好吧,您必须在web.xml中创建一个侦听器,该侦听器将在启动时由容器调用。

<listener>
    <listener-class>com.rdv.example.WebAppContext</listener-class>
</listener>

这个类将实现ServletContextListener

public class WebAppContext implements ServletContextListener {

public void contextInitialized(ServletContextEvent servletContextEvent) {
// Do your processing that you are trying to do in main method.
}

我找到了另一种方法,它独立于spring和tomcat: @PostConstruct注释。 在代码中:

@PostConstruct
public void init() {
    // initialization code goes here
}

无论我是独立运行我的应用程序还是在tomcat中运行,都会执行此方法。

有关更多信息,请参阅如何在bean初始化完成后调用方法? Spring Controller中的Init方法(注释版本)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM