我正在开发使用Spring Boot的web应用程序。我的典型部署是生成war并将其放在Tomcat目录的webapps文件夹中。
我注意到对于SpringBoot,我需要一个main方法。我想知道为什么需要这样做。如果有一种方法可以避免它,那会是什么?
@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);
}
}发布于 2015-04-22 15:59:34
构建war并将其放在Tomcat的webapps文件夹中的典型部署场景,不需要使用Main方法。你所需要的是:
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方法的入口点类可能会很有帮助。
发布于 2015-04-22 14:39:24
在单独的web容器中运行的
你不需要main方法,你所需要做的就是像克里格提到的那样扩展SpringBootServletInitializer。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
....
....在命令行中作为独立应用程序运行的
在这里,您需要main方法,以便可以从命令行使用java -jar运行它。
public class Application {
public static void main(String[] args){
ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
}
....
....发布于 2017-10-19 01:57:44
在Spring Boot中,人们基本上需要三件事:
1)使用@SpringBootApplication注释
2)扩展SpringBootServletInitializer
3)覆盖上述的configure方法
就是这样!
https://stackoverflow.com/questions/29782148
复制相似问题