SpringBoot自动关闭其中tomcat的方法

本文介绍了解决SpringBoot项目中tomcat关闭不完全导致的端口占用问题。通过添加特定配置可以确保项目停止时,所有相关进程一并关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在之前的项目,点了这个就大功告成了,项目里面的tomcat也关闭了,但是到maven以后,SpringBoot自带的tomcat无法一起关闭,所以就出现,点完这个,仍然会报端口占用的问题

解决方法如下:

加上红框中的部分就可以了


### Spring Boot 内嵌 Tomcat 机制与配置 当构建基于 Spring Boot 的应用程序时,默认情况下会使用内嵌的 Tomcat 容器来运行 Web 应用程序。这种设计简化了部署流程,使得开发者无需单独安装和配置外部服务器环境。 #### 自动配置原理 由于 `@EnableAutoConfiguration` 注解的存在[^2],Spring Boot 能够根据项目中的依赖关系自动推断并加载必要的组件和服务。具体到内置容器的选择上,只要项目的类路径下存在诸如 `tomcat-embedded.jar` 这样的文件,框架就会默认启用相应的支持功能——即创建一个 `TomcatServletWebServerFactory` 实例用于初始化 Tomcat 服务端实例。 #### 配置方式 对于大多数应用场景而言,默认设置已经足够满足需求;然而,在某些特殊场景下可能需要自定义一些参数或行为。此时可以通过修改 application.properties 或者 application.yml 文件来进行调整: ```yaml server: port: 8081 # 修改监听端口 servlet: context-path: /myapp # 设置上下文根目录 ``` 另外一种方法是在 Java 代码内部实现更为精细控制,比如完全替换掉默认工厂对象: ```java import org.apache.catalina.connector.Connector; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) public class EmbeddedContainerConfig { @Bean public TomcatServletWebServerFactory containerFactory() { return new TomcatServletWebServerFactory() { @Override protected void postProcessContext(org.apache.catalina.Context context) { ((org.apache.catalina.core.StandardContext)context).setCookies(false); } }; } } ``` 上述例子展示了如何通过编程手段改变 Tomcat 行为,这里关闭了 Cookie 处理能力作为示范[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值