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/21 2:34:13

探索大数据领域ClickHouse的文本数据处理

探索大数据领域ClickHouse的文本数据处理 关键词:ClickHouse、文本数据处理、大数据分析、全文搜索、文本向量化、数据清洗、分布式架构 摘要:本文深入探讨ClickHouse在文本数据处理领域的核心技术与实战应用。首先解析ClickHouse的分布式架构与列式存储特性对文本处理的天然…

作者头像 李华
网站建设 2026/4/23 11:36:01

Dart 函数深度解析:从基础语法到工程实践(4)

在 Dart 语言中&#xff0c;函数&#xff08;Function&#xff09;是程序逻辑组织、代码复用和抽象封装的核心单元。无论是简单的数学计算&#xff0c;还是复杂的业务流程&#xff0c;都可以通过函数进行模块化设计&#xff0c;从而提升代码的可读性、可维护性和可测试性。Dart…

作者头像 李华
网站建设 2026/4/23 11:27:22

c语言高级议题

头文件什么东西应该放在头文件里面呢&#xff1f;答案是&#xff1a; 1) 普通函数声明 2) 宏定义 3) 结构体、共用体模板定义 4) 枚举常量列表 5) static 函数和 inline 函数定义 6) 其他头文件 对上面的几项略作说明&#xff1a;第一&#xff0c;普通函数的定义不能放在头文件…

作者头像 李华