🍧SpringBoot项目如何部署在Tomcat中
Tomcat中部署SpringBoot项目
一、新建SpringBoot项目
<!--SpringBoot-WEB依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
二、pom.xml中排除内嵌的tomcat
<!--排除内嵌的tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
三、pom.xml中添加对项目打war包插件
<packaging>war</packaging>
<build> <!--war包名称--> <finalName>${project.artifactId}</finalName> <!--对项目打war包依赖--> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>
四、编写WEB发布容器启动类
创建一个继承自 SpringBootServletInitializer 的类,并重写 configure() 方法,如下所示:
SpringbootServletInitializerApplication是SpringBoot主启动类的类名
public class ServletInitializerApplication extends SpringBootServletInitializer{ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringbootServletInitializerApplication.class); } }
五、执行Maven构建
mvn clean install
六、发布
将打包好的war包放在tomcat的webapps目录下即可,Tomcat启动会自动解压war包。
需要注意的几点是:
- 1、项目启动会使用Tomcat容器的端口,SpringBoot中配置端口不会生效
- 2、项目访问需要加上war包的名称,比如:localhost:8080/springboot-servlet-nitializer
- 3、如果想要不加项目名访问,需要修改fileName为ROOT,例如:<finalName>ROOT</finalName>