SpringBoot修改内置tomcat版本
前言:生产环境使用的外部部署Tomcat还是内置Tomcat由于版本安全漏洞,往往需要升级到指定的安全版本。本文演示一下SpringBoot升级内置的Tomcat版本。
一、查看当前SpringBoot内置Tomcat版本信息.【本文SpringBoot的版本为2.3.4.RELEASE】
1、查看SpringBoot的启动项目版本.
spring-boot-starter-web依赖spring-boot-starter-tomcat.
tomcat-embed-core依赖版本信息.
二、查看SpringBoot内置tomcat版本的支持范围.
1、Maven的官方仓库中查看.
仓库地址
2、这里升级到9.0.45
①:<tomcat.version>9.0.45</tomcat.version>
②:添加依赖。
<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-core</artifactId><version>${tomcat.version}</version></dependency>
启动服务查看,测试项目功能
三、总结说明
1、SpringBoot内置Tomcat,每个版本会有一个对应的版本范围的,根据业务以及安全需求进行升级,如果需要更高版本,直接升级SpringBoot的版本也更加合适,注意一定要多在测试环境测试项目功能,一些配置属性过期、Maven冲突等,本文适用于指定SpringBoot然后小氛围微调内置Tomcat版本。
附录
SpringBoot下Tomcat开启Nio2协议,SpringBoot支持Nio/Nio2/Http2
org.apache.coyote.http11
package com.boot.skywalk.config;import lombok.extern.slf4j.Slf4j;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.ProtocolHandler;
import org.apache.coyote.http11.AbstractHttp11Protocol;
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.stereotype.Component;/*** 开启Tomcat下nio2配置配置*/@Slf4j
@Component
public class CommonTomcatConnectorCustomizer implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {@Overridepublic void customize(ConfigurableServletWebServerFactory factory) {((TomcatServletWebServerFactory) factory).setProtocol("org.apache.coyote.http11.Http11Nio2Protocol");((TomcatServletWebServerFactory) factory).addConnectorCustomizers(new TomcatConnectorCustomizer() {@Overridepublic void customize(Connector connector) {ProtocolHandler protocol = connector.getProtocolHandler();log.info("Tomcat({}) -- MaxConnection:{};MaxThreads:{};MinSpareThreads:{}", //protocol.getClass().getName(), //((AbstractHttp11Protocol<?>) protocol).getMaxConnections(), //((AbstractHttp11Protocol<?>) protocol).getMaxThreads(), //((AbstractHttp11Protocol<?>) protocol).getMinSpareThreads());}});}
}
访问运行:协议转换为Nio2.
SpringBoot多域名支持访问,本地如果做个简单测试,就在一下文件里面做个配置.
C:\Windows\System32\drivers\etc
然后修改SpringBoot下为80端口,etc中无法绑定具体端口.
server:port: 80
验证SpringBoot中properties、yaml、yml的优先级,取值时读取配置文件的顺序为:properties->yaml->yml。
配置内容生效顺序:
properties > yaml > yml
加载顺序:
yml > yaml > properties
测试配置文件如下:
最终生效是properties的内容
源码层面解释:
ConfigFileApplicationListener
从加载路径拼接出完整的配置文件然后进行加载.
默认加载外部Bean.
PropertySourceLoader接口的扩展
spring.factories的作用参考如下:
spring.factories文件的作用_着力的博客-CSDN博客_spring.factories
@Import注解作用参考如下:
Spring全解系列 - @Import注解 - 知乎
SpringBoot修改内置tomcat版本相关推荐
- 详解 springboot - 查看、修改内置 tomcat 版本
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1.解析Spring Boot父级依赖 ? 1 2 3 4 5 6 <parent> ...
- springBoot修改内置tomcat端口
springBoot内置了tomcat,tomcat端口是8080,实际开发中,端口肯定是需要修改的,下面直接贴代码怎样修改tomcat端口; @SpringBootApplication@Mappe ...
- 学习-Springboot禁止内置Tomcat不安全的HTTP方法
学习问题记录 用SpringBoot开发的项目在进行测试时,除GET.POST之外的HTTP请求方式都需要禁止,由于使用的内置Tomcat,试了几种方式,最后记录一下. 解决方式: 对独立启动的tom ...
- 查看SpringBoot内置tomcat版本
目录 1.黑窗口输入命令: 2.查看版本:打开tree.txt文件编辑 1.黑窗口输入命令: mvn dependency:tree > tree.txt 2.查看版本:打开tree.txt文 ...
- java非法字符65288,spring-boot使用内置tomcat时http请求非法字符过滤的问题
问题 在tomcat8.5.X以上版本中,tomcat对请求入参做了严格校验,具体参考下文资料. HTTP 400 Bad Request ... http11.Http11Processor : E ...
- springboot配置内置tomcat的日志
在springboot的项目的配置文件中添加如下图所示代码 端口 server.port=8050 配置log server.tomcat.accesslog.buffered=true server ...
- Spring Boot修改内置Tomcat端口号
http://blog.csdn.net/argel_lj/article/details/49851625 转载于:https://www.cnblogs.com/diyunpeng/p/76661 ...
- SpringBoot内置Tomcat浅析
一.SpringBoot框架内置Tomcat,开发非常方便,随着SpringBoot的框架升级,内置Tomcat也更新版本.本文SpringBoot框架版本:2.2.10. 1.如何查看SpringB ...
- Spring Boot2.0之 原理—创建内置Tomcat容器
前面所述的https://www.cnblogs.com/toov5/p/9823728.html 中的第一条先不赘述了,就是玩了maven 重点介绍后两条 首先内置Tomcat: SpringBoo ...
- 项目部署—移除Spring Boot内置Tomcat,部署到云服务器Tomcat
以往部署Java web项目到阿里云服务器时,直接将项目打包成war包,放到阿里云服务器中tomcat的webapps目录下,就可以访问了. SpringBoot默认给我们提供了内置tom ...
最新文章
- Firefox 3.6最新功能:网页可根据设备方位调整角度
- SHELL相关的特殊字符总结
- linux ngx listen的解析
- 中的 终端报错怎么看原因_《琅琊榜》中太子被封禁,高湛引皇上看桂花的真正原因是什么?...
- ubuntu环境搭建五:修改中文字符集
- 批量替换_【脚本】AE照片墙模板图片批量替换脚本Multi Replacer
- [详细功能介绍]Stimulsoft报表全线更新至2012.3
- lableme标注的json文件转为mask r-cnn训练用的coco数据集格式
- 宇宙质量估算为10^53KG
- paip.代码生成器数据源格式最佳实践
- 艺术名家|翰墨异彩“三分书”——访知名书法家蔡爱军
- win10安装(U盘启动)
- 程序员必须知道的硬件常识(一):打印机之彩印缺少某种颜色的解决方法
- pdf和图像文字识别提取工具
- Unity升级2018与Google Android64位支持
- Chrome自动更新到78.0.3904.70后出现“Aw, Snap!”错误,所有页面不能打开。
- Js 显示 服务器 目录,js获得服务器目录
- java .class文件为什么以CAFEBABE开头?
- softmax+cross-entropy的前向计算、反向传播的公式推导
- 【并发】线程同步——锁Lock与synchronized比较
热门文章
- [GRE] 填空机经 Section51-55
- 在线php网站扫描,一个简单的php在线端口扫描器
- 顶尖数据恢复软件免费中文版
- “狼牙抓鸡”现身IT江湖
- mysql取出qq表情_mysql存储emoji表情报错处理,qq互联mysql存储昵称中带表情的数据时报错。...
- 在centos7环境下运行.exe文件
- 完全免费软件开发论坛介绍
- Chrome浏览器安装扩展程序后菜单栏图标不显示
- 勤哲excel服务器端口协议,用勤哲Excel服务器实现管理完整.doc
- JSP九大内置对象以及作用