1.排除内置 Tomcat
在pom.xml文件中的下添加以下代码,用于排除SpringBoot内置Tomcat
<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>
2.将打包方式更改为 war
<parent>
<artifactId>cloud2023</artifactId>
<groupId>org.example.cloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
3.修改启动类
使启动类继承 SpringBootServletInitializer 类,并覆盖 configure 方法。
@SpringBootApplication
public class PaymentMan8001 extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(PaymentMan8001.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(PaymentMan8001.class);
}
}
4.添加依赖
由于 SpringBootServletInitializer 类需要用到 servlet-api 的相关 jar 包,所以需要在pom.xml的中添加javax.servlet依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
5.部署到外部 Tomcat
5.1 直接使用Tomcat部署
1) 先对项目进行打包(war包),打包成功后会生成target目录
2) 在target目录下复制war包
3)打开你的tomcat目录,找到webapps文件夹,将刚刚复制的war包复制到webapps文件夹下
4) 当Tomcat服务器启动后
假设你部署war包名为demo.war, 则访问URL应该为 http://localhost:8080/demo,打开浏览器输入URL,即可访问
5) 测试
localhost:8001/demo/payment/get/1
5.2 在IDEA中部署
1) 编辑配置
2) 选择Tomcat Server --> Local
3) 选择你下载好的Tomcat
4) 添加Artifact
6) 点击apply
7) 启动项目