news 2026/4/23 2:58:51

SpringBoot使用外置Tomcat

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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成功!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 8:08:49

python-热门音乐可视化的设计与实现-开题报告

目录 研究背景与意义研究内容技术路线预期成果创新点参考文献示例 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 研究背景与意义 音乐可视化通过图形、动画等技术将音乐数据转化为视觉形式&#xff0c;…

作者头像 李华
网站建设 2026/4/8 14:12:02

EasyAnimateV5图生视频惊艳效果:分子结构图→化学反应动态演示视频

EasyAnimateV5图生视频惊艳效果&#xff1a;分子结构图→化学反应动态演示视频 1. 引言&#xff1a;当化学遇上AI动画 化学教学和科研中&#xff0c;最难解释清楚的就是分子间的动态相互作用。传统的静态结构图只能展示某一瞬间的状态&#xff0c;而化学反应的本质却是动态变…

作者头像 李华
网站建设 2026/4/19 1:50:40

Qwen2.5-VL-Chord参数详解:bfloat16推理、DEVICE自动切换与端口配置

Qwen2.5-VL-Chord参数详解&#xff1a;bfloat16推理、DEVICE自动切换与端口配置 1. 项目概述 1.1 什么是Qwen2.5-VL-Chord Qwen2.5-VL-Chord是基于Qwen2.5-VL多模态大模型开发的视觉定位服务。这个模型能够理解自然语言指令&#xff0c;并在图像中精确定位描述的对象&#x…

作者头像 李华
网站建设 2026/4/20 20:32:06

CML电平:高速数字信号传输中的隐形冠军

CML电平&#xff1a;高速数字信号传输中的隐形冠军 在5G基站设备调试现场&#xff0c;一位资深硬件工程师正盯着示波器上清晰的12Gbps眼图波形感叹&#xff1a;"用了CML接口后&#xff0c;信号完整性难题迎刃而解。"这个场景折射出当前高速互连领域的技术变革——当数…

作者头像 李华