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

Spring Boot 配置嵌入式Servlet容器

springboot默认tomcat作为嵌入式的servlet容器

1. 修改和server有关的配置
server.port=8082 #通用的servlet容器设置 server.xxx #Tomcat的设置 server.tomcat.xxx
//org.springframework.boot.autoconfigure.web.ServerProperties@ConfigurationProperties(prefix="server",ignoreUnknownFields=true)publicclassServerProperties{/** * Server HTTP port. */privateInteger port;...privatefinalServlet servlet=newServlet();privatefinalTomcat tomcat=newTomcat();...}
2. 注册一个WebServerFactoryCustomizer bean

如果需要以编程方式配置嵌入的servlet容器,可以注册一个实现WebServerFactoryCustomizer接口的SpringBean。WebServerFactoryCustomizer提供对可配置的ServletWebServerFactory的访问,其中包括许多自定义设置器方法。以下示例以编程方式显示如何设置端口:

@ComponentpublicclassCustomizationBeanimplementsWebServerFactoryCustomizer<ConfigurableServletWebServerFactory>{@Overridepublicvoidcustomize(ConfigurableServletWebServerFactory server){server.setPort(9000);}}

TomcatServletWebServerFactory、JettyServletWebServerFactory和UndertowServletWebServerFactory是可配置的ServletWebServerFactory的专用变体,分别为Tomcat、Jetty和Undertow提供了额外的自定义设置方法。
ctrl+h

切换其他servlet容器:
springboot默认使用tomcat,首先去除tomcat依赖:

再引入其他servlet容器

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency>

如果前面的自定义技术太有限,您可以自己注册TomcatServletWebServerFactory、JettyServletWebServerFactory或UnderownServletWebServerFactory bean。

@BeanpublicConfigurableServletWebServerFactorywebServerFactory(){TomcatServletWebServerFactory factory=newTomcatServletWebServerFactory();factory.setPort(9000);factory.setSessionTimeout(10,TimeUnit.MINUTES);factory.addErrorPages(newErrorPage(HttpStatus.NOT_FOUND,"/notfound.html"));returnfactory;}

在spring boot中会有很多的xxxCustomizer帮助我们进行定制配置

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

相关文章:

  • 掌握Agent开发,抢占AI时代核心优势:从入门到实战,升职加薪必备!
  • 外贸网站Google推广的实操策略
  • OpenClaw智能代理框架一键部署指南
  • TestDisk数据恢复:免费开源工具拯救丢失数据的完整指南
  • 2026长三角亚硫酸氢钠厂家推荐:专业生产与稳定供应实力解析 - 信息热点
  • 你的数字记忆管家:3步永久保存微信聊天记录,打造专属情感档案馆
  • Java中SSM框架解决跨域请求
  • Obsidian 插件搭配指南:从同步底层到效率工具的五层插件体系
  • 沈阳装修公司综合实力榜2026:6大维度严选,荣泰、林泽、富田、方林上榜 - GrowUME
  • Obsidian+Python构建个人知识管理系统实践
  • COMSOL多物理场仿真在压缩空气储能系统中的应用
  • 物联网安全:SE050安全元件与TM4C129XNCZAD的协同设计
  • 南通市马桶疏通 / 管道疏通|本地市民好评,满分十星平台+ ICP 多重备案 | 2026首选小蚁匠 - 欧米到家
  • 抖音无水印下载终极指南:3步学会批量保存高清视频的免费工具
  • Python基础学习之IF控制流
  • 贵阳观山湖变现投资金条,避坑要点很多人不知道 - 全城热点
  • NBM5100A电池增强器与PIC18F45K80的低功耗物联网方案
  • Outfit字体终极指南:9种字重免费开源字体库,让设计瞬间拥有品牌感
  • 华硕笔记本性能优化革命:告别传统工具依赖,打造你的个性化性能画像
  • Micro:bit驱动8x8 LED点阵屏:基于74HC595的动态扫描原理与Mind+实战
  • Python量化交易利器:pyctp CTP接口封装技术全解析
  • FlicFlac:Windows上7大音频格式一键互转的终极免费解决方案
  • 如何3分钟掌握大麦助手:专业用户的完整抢票神器指南
  • Palworld存档工具完全指南:掌握游戏数据转换的核心技能
  • 嘎嘎降AI和去AIGC哪个更划算:2026年降AI效果价格完整对比测试
  • 产品经理,开会整理会议纪要:2026年3款苹果录音总结工具哪个好
  • 企业高效经营分析会:数据驱动决策与执行闭环
  • 计算机毕业设计之基于Springboot的高校思政教育平台
  • [具身智能-673]:四种移动底盘方案完整对比解析
  • 力扣刷题14. 最长公共前缀(Java)