作为战争部署时,Spring Boot应用程序是否需要“main”方法

Yag*_*nov 5 java servlets spring-boot

当我们将 Spring Boot 应用程序部署为 tomcat 上的“战争”时,我们必须扩展 SpringBootServletInitializer 并覆盖 \xe2\x80\x9cconfigure\xe2\x80\x9d 方法。\n当我注释“main”方法时,它仍然有效并且Spring Boot 应用程序和我的服务工作正常。当将项目部署为“war”时,我们还需要 main 方法吗?为什么?

\n\n
@SpringBootApplication\n@EnableWs\npublic class TestApp extends SpringBootServletInitializer {\n    @Override\n    protected SpringApplicationBuilder configure(SpringApplicationBuilder \nbuilder) {\n        return builder.sources(TestApp.class);\n    }\n    public static void main(String[] args) {\n        SpringApplication.run(TestApp.class, args);\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n
@SpringBootApplication\n@EnableWs\npublic class TestApp extends SpringBootServletInitializer {\n\n    @Override\n    protected SpringApplicationBuilder configure(SpringApplicationBuilder \nbuilder) {\n        return builder.sources(TestApp.class);\n    }\n\n    /*public static void main(String[] args) {\n        SpringApplication.run(TestApp.class, args);\n    }*/\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Sim*_*lli 2

不,你不会,因为没有人会调用它。

如果您想在 Web 容器之外运行它,请注意这种情况。

  • 好吧,那么谁运行spring应用程序(即谁调用SpringApplication.run)? (2认同)