原文:https://blog.csdn.net/u013305783/article/details/74454966
主要的就是下面这个,重写configure。可以不用新建类直接在Application里面写
接着是新建一个ServletInitializer 并且集成自SpringBootServletInitializer 代码如下
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
// 不重写打包war部署到tomcat接口会报404
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
特别注意其中的Application要与我们自己建立的Application名称一样。
如果要放在其他tomcat上的话pom.xml需要加入:
<!-- 打war包时加入此项, 告诉spring-boot tomcat相关jar包用外部的,不要打进去 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope><!--由JDK或者容器提供-->
</dependency>
至于为什么要继承重写目前找到的说法如下:(具体还是要自己了解一下SpringBootServletInitializer)
这里继承SpringBootServletInitializer 并重写其中的configure方法目的是使用Spring框架的Servlet3.0支持。并且允许我们可以配置项目从serclet容器中启动。
SpringBootServletInitializer的执行过程,简单来说就是通过SpringApplicationBuilder构建并封装SpringApplication对象,并最终调用SpringApplication的run方法的过程。
具体还是要自己了解一下SpringBootServletInitializer。这里我就不做过多说明,目前还有那么大心思去了解运行原理等东西。
不过推荐一个搜到的连接。感觉应该讲的挺清楚的。以后再慢慢看: