1、maven项目,修改pom包
将
<packaging>jar</packaging>
改为
<packaging>war</packaging>
2、打包时排除tomcat.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
在这里将scope属性设置为provided,这样在最终形成的WAR中不会包含这个JAR包,因为Tomcat或Jetty等服务器在运行时将会提供相关的API类。
3、注册启动类
创建ServletInitializer.java,继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去。外部web应用服务器构建Web Application Context的时候,会把启动类添加进去。
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
最后执行,注意必须进到项目所在目录,与 pom.xml 文件同级
mvn clean package -Dmaven.test.skip=true
会在target目录下生成:项目名+版本号.war文件,拷贝到tomcat webapps目录中启动即可。
启动时项目名为war包文件名,如 spring-boot-mybatis-mulidatasource-1.0.0.war,访问时就是这样:
部署成功访问如上图。
参考链接:http://www.ityouknow.com/springboot/2017/05/09/springboot-deploy.html