bra*_*orm 13 spring spring-mvc spring-boot
我正在使用Spring Boot开发Web应用程序.我的典型部署是生成war并将其webapps放在Tomcat目录中的文件夹中.
我注意到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);
}
}
Run Code Online (Sandbox Code Playgroud)
Nay*_*try 14
构建战争并将其放置在Tomcat的webapps文件夹中的典型部署方案不需要主方法.所有你需要的是:
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您希望能够在IDE中启动应用程序(例如使用Eclipse的运行方式 - > Java应用程序),同时开发或构建可执行jar或可以通过java -jar myapp.war命令单独使用Spring Boot的嵌入式tomcat运行的war,带有main方法的入口点类可能会有所帮助.
在单独的 Web 容器中运行
您不需要 main 方法,您所需要做的就是SpringBootServletInitializer像Kryger提到的那样进行扩展。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
....
....
Run Code Online (Sandbox Code Playgroud)
作为独立应用程序在命令行中运行
这里您需要 main 方法,以便您可以java -jar从命令行运行它。
public class Application {
public static void main(String[] args){
ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
}
....
....
Run Code Online (Sandbox Code Playgroud)
来源:https://spring.io/guides/gs/convert-jar-to-war/
| 归档时间: |
|
| 查看次数: |
11282 次 |
| 最近记录: |