当前位置: 首页 > news >正文

SpringBoot使用外置Tomcat

SpringBoot默认使用嵌入式Servlet容器(内置Tomcat)。

应用打成可执行的jar

原理:

jar包:执行SpringBoot主类的main方法,启动ioc容器,创建嵌入式的Servlet容器。

war包:启动服务器,服务器启动SpringBoot应用【SpringBootServletInitializer】,启动ioc容器。

如果SpringBoot想要使用外置Tomcat应如何操作呢?下面进行外置Tomcat的步骤演示:

第一步:创建Maven Web项目

第二步:将Maven Web项目修改为SpringBoot项目

1. 修改pom.xml文件

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.6</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.qcby</groupId> <artifactId>springboottomcat</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging><!-- 注意这里是war的打包方式 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <!-- Web依赖 --> <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指定为provided --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐tomcat</artifactId> <scope>provided</scope> </dependency> <!-- 添加Servlet API依赖(provided表示打包时不包含,由外置容器提供) --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> </dependencies> <!-- Spring Boot Maven插件,这是生成可执行jar的关键 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

【2. 添加启动类,适配外置容器】

⭐⭐⭐注意:让启动类继承SpringBootServletInitializer并重写configure方法(这是外置容器启动SpringBoot应用的入口)

package com.qcby.springBootTomcat; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication public class springBootTomcat extends SpringBootServletInitializer{ // 内置容器启动入口(保留不影响,外置容器不会走这个方法) public static void main(String[] args) { SpringApplication.run(springBootTomcat.class,args); } // 外置容器启动入口:重写configure方法 @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(springBootTomcat.class); } }

【3. 写一个测试接口】

@RestController public class HelloController { // 测试接口 @GetMapping("/hello") public String hello() { return "Hello, Tomcat!"; } }

第三步:配置外部Tomcat

第四步:

  1. 启动外部Tomcat
  2. 访问http://localhost:8080/hello

到次,配置外部Tomcat成功!!!

http://www.jsqmd.com/news/335700/

相关文章:

  • 链表相关题目
  • 例说FPGA:可直接用于工程项目的第一手经验【2.4】
  • 例说FPGA:可直接用于工程项目的第一手经验【2.5】
  • 大模型智能体架构转型:从“巨无霸“到“多智能体微服务“的实战思考
  • AD丝印批量设置-如何批量调整丝印尺寸位置,如何批量显示/隐藏全部丝印。
  • 2026抓住AI风口,飞上天!程序员、产品、项目经理、普通人转行大模型,看这篇就够了!转行AI大模型教程(建议收藏)
  • 什么是Wi-Fi路由器
  • DeepSeek R2架构详解,如何在有限算力下打造世界级大模型
  • 什么是WiFi漫游
  • 什么是WiFi 7
  • 什么是Wi-Fi 7零漫游
  • 2026年初全铝阳台柜高性价比厂家深度分析与选购指南 - 2026年企业推荐榜
  • 分享前端如何监控线上的BUG
  • AI业务架构师完全手册:让Token变利润的核心技能与避坑指南
  • PLSQL Developer 12.0.7 64位安装教程
  • 探索大数据领域ClickHouse的文本数据处理
  • 2026年医院展馆导览机器人技术深度解析与主流产品应用指南 - 智造出海
  • **AI漫剧爆款生成器2025推荐,解锁高互动率与平台适配的
  • 2026-02-03 全国各地响应最快的 BT Tracker 服务器(电信版)
  • SpringBoot+Vue 人事管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 池州标志设计服务商选择指南与深度评测 - 2026年企业推荐榜
  • 前后端分离校园资产管理系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 2026年商场前台迎宾机器人选购指南:旗舰机型推荐 - 智造出海
  • 英伟达 数字孪生 AODT 下载
  • Dart 核心语法精讲:从空安全到流程控制(3)
  • Dart 函数深度解析:从基础语法到工程实践(4)
  • <span class=“js_title_inner“>ITIL 4落地实施:为什么90%的企业都在第一步就走错了路?</span>
  • **AI漫剧剧本写作工具2025推荐,三款适配不同创作场景的
  • **AI漫剧制作工具2025推荐,新手也能快速上手的创作利器
  • 2026年非人形机器人核心品类解析与代表性产品技术分析 - 智造出海