聊聊springboot2的embeded container的配置改动
本文主要研究下springboot2的embeded container的配置改动
springboot 1.x
import org.apache.catalina.connector.Connector;
import org.apache.coyote.ProtocolHandler;
import org.apache.coyote.http11.Http11NioProtocol; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.boot.web.servlet.ErrorPage; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; @Component public class EmbeddedTomcatConfig implements EmbeddedServletContainerCustomizer{ @Override public void customize(ConfigurableEmbeddedServletContainer container) { TomcatEmbeddedServletContainerFactory factory = (TomcatEmbeddedServletContainerFactory)container; factory.addConnectorCustomizers(new TomcatConnectorCustomizer() { @Override public void customize(Connector connector) { Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler(); protocol.setMaxConnections(200); protocol.setMaxThreads(200); protocol.setSelectorTimeout(3000); protocol.setSessionTimeout(3000); protocol.setConnectionTimeout(3000); } }); } }
通过实现org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer的customize方法来实现自定义
springboot 2.x
import org.apache.catalina.connector.Connector;
import org.apache.coyote.ProtocolHandler;
import org.apache.coyote.http11.Http11NioProtocol; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.stereotype.Component; @Component public class EmbeddedTomcatConfig implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> { @Override public void customize(ConfigurableServletWebServerFactory factory) { ((TomcatServletWebServerFactory)factory).addConnectorCustomizers(new TomcatConnectorCustomizer() { @Override public void customize(Connector connector) { Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler(); protocol.setMaxConnections(200); protocol.setMaxThreads(200); protocol.setSelectorTimeout(3000); protocol.setSessionTimeout(3000); protocol.setConnectionTimeout(3000); } }); } }
在2.x版本改为实现org.springframework.boot.web.server.WebServerFactoryCustomizer接口的customize方法
小结
springboot1.x的相关类如下:
- org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer
- org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer
- org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer
- org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory
springboot2.x的相关类如下:
- org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory
- org.springframework.boot.web.server.WebServerFactoryCustomizer
- org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer
- org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory
对比一下可以清楚看到相关的改动
转载于:https://www.cnblogs.com/JAYIT/p/10863147.html
聊聊springboot2的embeded container的配置改动相关推荐
- 注解不自动导包_玩转SpringBoot2.X:SpringBoot自动配置原理大揭秘
我们在使用SpringBoot的时候,是不是觉得特方便,根本不需要我们去配置什么端口号,应用名称,又比如我们再整合redis的时候,其实也不需要我们去指定端口号,IP,都会有默认的.是不是特方便.那么 ...
- python json key_最全总结 | 聊聊 Python 数据处理全家桶(配置篇)
1.前言 在实际项目中,经常会接触到各种各样的配置文件,它可以增强项目的可维护性 常用配件文件的处理方式,包含:JSON.ini / config.YAML.XML 等 本篇文章,我们将聊聊 Pyth ...
- docker container DNS配置介绍和源码分析
2019独角兽企业重金招聘Python工程师标准>>> 本文主要介绍了docker容器的DNS配置及其注意点,重点对docker 1.10发布的embedded DNS server ...
- springboot2.0 的ssl证书配置
当你不知道怎么做的时候,做什么都不知道从何下手... 看了很多前人的文章,终于找到了配置方法!自己记录一份自己配置留下的,才是自己的,打一针预防针! 我这个是在阿里云申请的ssl证书,申请的时候是绑定 ...
- SpringBoot2.0 jpa多数据源配置
随着Springboot升级到2.0,原来1.5.x的Jpa多数据源配置不能用了.现在总结一下Springboot2.0的jpa多数据源配置 连接池还是用druid,但是不能用druid的starte ...
- SpringBoot2/SpringBoot/Java动态数据源配置、动态连接池配置、多数据源负载均衡
Java动态数据源配置.动态连接池配置.多数据源负载均衡 大家好,今天给大家推荐一个自产的连接池插件.废话不多说,本文接口分为以下主题: 1. 插件开发背景: 2. 插件提供的能力: 3. 插件的使用 ...
- 最全总结 | 聊聊 Python 数据处理全家桶(配置篇)
聊聊 Python 数据处理全家桶(Memca 篇) 点击上方"菜鸟学Python",选择"星标"公众号 重磅干货,第一时间送达 1.前言 在实际项目中,经常会 ...
- springboot2.0系列(二):配置属性
为什么80%的码农都做不了架构师?>>> 前言 Spring Boot中核心思想:约定优于配置.那到底什么是约定优于配置? 约定优于配置(convention over con ...
- SpringBoot笔记:SpringBoot2.3集成Kafka组件配置
文章目录 说明 Springboot集成Kafka 依赖配置 配置文件yml配置 Producer生产者 Consumer消费者 测试代码 注意事项 说明 本文是接<Kafka学习:CentOS ...
最新文章
- (0107)iOS开发之UI实时调试InjectionIII的使用
- 新网站是如何吸引蜘蛛进行爬取的?
- django学习之Model(四)MakingQuery
- Android背景色渐变效果(shape,gradient) (转)
- Latex可能遇到的一些问题
- 高速收发器之8B/10B编码
- JavaScript页面跳转常用代码(转)
- 帧同步分离逻辑层和渲染层_帧同步如何分离逻辑和渲染?
- 拓端tecdat|R语言中实现广义相加模型GAM和普通最小二乘(OLS)回归
- 马里兰帕克分校计算机科学,马里兰大学帕克分校管理信息系统(MIS)专业详解...
- Couldn't connect to host, port: localhost, 25; timeout -1;
- 咖说 | 「延展与重构」数字艺术的新可能
- 文件上传upload-labs第四关
- Python 执行 JS 代码 —— PyExecJS
- educoder 国标码转区位码实验(详细)
- 计算机导论——多媒体技术04
- 【解决】android设备有root权限,执行“adb disable-verity”命令报错“verity cannot be disabled/enabled - USER build”
- 挖掘机销售业务员如何做好客户接触及拜访工作
- react-native集成阿里云金融实人认证获取当前viewController
- HashMap 源码深度分析