概述
新建SpringBoot项目时使用war包,说明这是一个web项目,因此发布的时候我把它放在tomcat的webapps下面。
注意:这里要让SpringBoot内置tomcat失效
必要的两点
1.如下所示,先让内置tomcat失效
代码:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
2.让启动类继承SpringBootServletInitializer并重写方法
代码:
@SpringBootApplication
public class Application extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在windows上部署
先将项目打成war包:右击项目,先clean,后install,在target目录下生成war文件
将war文件放入在tomcat的webapps中,运行tomcat
在linux上部署
这里有一个需要注意的地方:
在windows上能运行的war包,在linux可能会有一下错误:
原因:找不到访问数据库的连接
解决方法:将pom文件中的MySQL依赖版本降低
然后和windows步骤一样,打包发布