打成war包启动和本地用过main方法启动不同,本地main方法启动是依赖于内置的tomcat,而打成war包是放到tomcat内启动,所以要剔除掉tomcat的依赖部分,但还要保存servlet的部分。需要在pom.xml中增加配置如下:
<packaging>war</packaging>
<dependency>
<!-- 指定为Web应用,并启动一个内嵌的Servlet容器(默认是Tomcat)用于处理HTTP请求 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- springboot本身开发出来只支持3.0以上,为了让spring boot支持servlet2.5 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。 相当于compile,但是打包阶段做了exclude操作-->
<scope>provided</scope>
</dependency>
————————————————
版权声明:本文为CSDN博主「万米高空」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhanglf02/article/details/86313540
方法主入口继承SpringBootServletInitializer类并实现configure方法
/**
* 配置除去了自动配置数据源的类-DataSourceAutoConfiguration,因为
* 这个注解会把sping的配置的数据源全部都自动注入,不会默认注入一个,当使用其他数据源时再调用另外的数据源。
* @author zhanglf
*
*/
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class Application extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
————————————————
版权声明:本文为CSDN博主「万米高空」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhanglf02/article/details/86313540