Spring Boot Jar包转War包 部署到Tomcat下

原文:https://my.oschina.net/sdlvzg/blog/1562998

我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时这也可能是我们的一个瓶颈,因为如果我们需要对tomcat做集群或者一些优化的话是非常不方便的,所以我们仍然需要将springBoot的项目部署到外在的tomcat中,本文档主要介绍一下如何将jar包转换成war包。

第一步、将SpringBoot的项目的打包方式设置为war,修改pom.xml文件如下:

	<groupId>org.morecare</groupId>
<artifactId>mc-api-system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--由Jar包转为War包-->
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<name>mc-api-system</name>
<url>http://maven.apache.org</url>

第二步、移除内嵌的tomcat模块,以及添加tomcat-servelt-api依赖,但是为了我们在本机测试方便,我们还需要引入它,修改pom.xml文件如下:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--添加移除内嵌的tomcat模块-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--本机测试方便,添加tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!--添加移除内嵌的tomcat模块-->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.39</version>
</dependency>

第三步、添加war插件,用来自定义打包以后的war包的名称

<!-- 自定义war包名称 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceExcludes>src/main/resources/**</warSourceExcludes>
<warName>parent</warName>
</configuration>
</plugin>

第四步、修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法

package org.morecare;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.support.SpringBootServletInitializer; /**
* Spring Boot启动类
* @author Administrator
*/
@SpringBootApplication
@ServletComponentScan
@MapperScan("org.morecare.*.mapper")
public class SystemApplication extends SpringBootServletInitializer {
//修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SystemApplication.class);
} public static void main(String[] args) {
SpringApplication.run(SystemApplication.class, args);
} }

完成以上四步,再通过Maven的打包方法,就可以把项目打包成War包,然后把项目部署到Tomcat下了

上一篇:Exchange-fanout 广播模式


下一篇:CentOS 7安装简介及基本操作