Spring Boot 怎么配置外部 Tomcat 运行

酷瑶小哥_1935

酷瑶小哥_1935

2026-10-24

766人浏览

原创

spring boot 项目部署到外部 tomcat 需三步:①将 pom.xml 中 jar 改为 war;②在 spring-boot-starter-web 中排除 spring-boot-starter-tomcat;③主启动类继承 springbootservletinitializer 并重写 configure 方法。

spring boot 怎么配置外部 tomcat 运行

Spring Boot 默认用内置 Tomcat,要让它跑在外部独立的 Tomcat 上,关键不是改配置文件,而是让项目变成标准 WAR 包,并适配 Servlet 容器的启动机制。核心改动就三处,缺一不可。

改成 WAR 打包方式

打开 pom.xml,把原本的:

jar

改成:

war

这一步告诉 Maven:我要生成符合 Java EE 规范的 Web 归档包,不是自启动的 JAR。

排除内置 Tomcat 依赖

spring-boot-starter-web 默认带了 spring-boot-starter-tomcat,它和外部 Tomcat 冲突,必须去掉。在该依赖里加 <exclusions></exclusions>:

  • 找到 spring-boot-starter-web 的 dependency 块
  • 在里面添加 <exclusions><exclusion><groupid>org.springframework.boot</groupid><artifactid>spring-boot-starter-tomcat</artifactid></exclusion></exclusions>

注意:不要手动加 spring-boot-starter-tomcat 依赖,更不要设为 provided —— 排除干净即可,外部容器会提供运行时所需的 Servlet API。

主类继承 SpringBootServletInitializer

外部 Tomcat 启动时不调 main 方法,而是走 Servlet 标准生命周期。所以启动类必须主动适配:

  • 让主启动类(如 Application.java)继承 SpringBootServletInitializer
  • 重写 configure(SpringApplicationBuilder) 方法,返回 builder.sources(YourApplicationClass.class)
  • main 方法保留不动,本地调试仍可用

示例:

public class Application extends SpringBootServletInitializer {
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(Application.class);
  }
  public static void main(String[] args) { SpringApplication.run(Application.class, args); }
}

部署与验证

打包后得到 WAR 文件,直接丢进 Tomcat 的 webapps 目录即可。启动 Tomcat,访问 http://localhost:8080/your-app-context(上下文路径默认是 WAR 包名,如 demo.war → /demo)。

如果报错 ClassNotFoundException: javax.servlet.Filter,说明少了 Servlet API —— 此时需确认是否误删了 javax.servlet-api,但 Spring Boot 2.4+ 通常不需要显式添加;若用老版本或 IDE 调试报错,可加 <scope>provided</scope> 的 javax.servlet-api 依赖。

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.26

825

5

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

304

5

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

489

5

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

285

5

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

348

5

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

349

5

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

581

5

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

322

5

有哪些常见的tomcat漏洞
有哪些常见的tomcat漏洞

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

2793

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习