Spring boot 部署到 tomcat
首先将spring boot启动类
public class Application {
//启动类
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
修改成以下代码块,继承SpringBootServletInitializer并重写configure方法
@SpringBootApplication
@EnableTransactionManagement
public class Application extends SpringBootServletInitializer{
//启动类
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
//重写configure方法
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
然后在pom.xml中添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.42</version>
<scope>provided</scope>
</dependency>
在pom.xml文件中,project下面packaging标签改为
<packaging>war</packaging>
注意scope必须是provided
<build>
<!--项目名-->
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
注意配置文件中端口号要和tomcat一致
然后将项目maven run as
出现war成功
然后找到项目路径的target目录找到生成的war包
最后将war包仍到tomcat的webapps中
启动tomcat spring boot会自动生成对应的文件
若想去除项目名可以将war包改成ROOT且删除webapps的ROOT文件夹
希望这篇对于spring boot 部署到 tomcat上遇到错误的小伙伴有帮助