首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我使用Spring Boot将web应用开发为war,为什么我需要main方法?

如果我使用Spring Boot将web应用开发为war,为什么我需要main方法?
EN

Stack Overflow用户
提问于 2015-04-22 04:10:50
回答 3查看 16.4K关注 0票数 19

我正在开发使用Spring Boot的web应用程序。我的典型部署是生成war并将其放在Tomcat目录的webapps文件夹中。

我注意到对于SpringBoot,我需要一个main方法。我想知道为什么需要这样做。如果有一种方法可以避免它,那会是什么?

代码语言:javascript
复制
@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-22 15:59:34

构建war并将其放在Tomcat的webapps文件夹中的典型部署场景,不需要使用Main方法。你所需要的是:

代码语言:javascript
复制
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
} 

然而,如果你想在开发时从集成开发环境中启动应用程序(例如,使用Eclipse的run As Spring Java Application),或者只需java -jar myapp.war命令就可以在Spring Boot的嵌入式tomcat中独立运行的build an executable jar or a war,一个带有main方法的入口点类可能会很有帮助。

票数 17
EN

Stack Overflow用户

发布于 2015-04-22 14:39:24

在单独的web容器中运行的

你不需要main方法,你所需要做的就是像克里格提到的那样扩展SpringBootServletInitializer

代码语言:javascript
复制
@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
....
....

在命令行中作为独立应用程序运行的

在这里,您需要main方法,以便可以从命令行使用java -jar运行它。

代码语言:javascript
复制
public class Application {
    public static void main(String[] args){
        ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
    }
....
....

来源:https://spring.io/guides/gs/convert-jar-to-war/

票数 4
EN

Stack Overflow用户

发布于 2017-10-19 01:57:44

在Spring Boot中,人们基本上需要三件事:

1)使用@SpringBootApplication注释

2)扩展SpringBootServletInitializer

3)覆盖上述的configure方法

就是这样!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29782148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档