背景
SpringBoot开发的web项目可以不用再额外安装tomcat,直接使用其内置的tomcat;然而在某些情况下可能需要使用到tomcat容器,而原先的SpringBoot项目如何直接部署在tomcat容器下呢?
迁移修改准备
- 移除嵌入的tomcat插件并添加servlet-api依赖
由于本人项目使用的是gradle,故需要在build.gradle中修改库依赖
dependencies {
compile 'javax.servlet:javax.servlet-api:3.1.0'
compile("org.springframework.boot:spring-boot-starter-web:$springboot_version") {
exclude module: 'spring-boot-starter-tomcat'
}
}
- 修改启动类,并修改启动方法
在启动服务同级目录下添加新class文件:SpringBootStartApplication.java; 继承SpringBootServletInitializer并实现其configure方法
public class SpringBootStartApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(ApiLcServer.class);
}
}
部署验证
- 打包成war
build.gradle中添加war,并执行gradle war
apply plugin: 'war'
- 部署验证
将打包好的war包放在tomcat工程目录下,重启tomcat,查看日志并验证URL是否可以正常访问
网友评论