前言:生产环境使用的外部部署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版本相关推荐

  1. 详解 springboot - 查看、修改内置 tomcat 版本

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1.解析Spring Boot父级依赖 ? 1 2 3 4 5 6 <parent>   ...

  2. springBoot修改内置tomcat端口

    springBoot内置了tomcat,tomcat端口是8080,实际开发中,端口肯定是需要修改的,下面直接贴代码怎样修改tomcat端口; @SpringBootApplication@Mappe ...

  3. 学习-Springboot禁止内置Tomcat不安全的HTTP方法

    学习问题记录 用SpringBoot开发的项目在进行测试时,除GET.POST之外的HTTP请求方式都需要禁止,由于使用的内置Tomcat,试了几种方式,最后记录一下. 解决方式: 对独立启动的tom ...

  4. 查看SpringBoot内置tomcat版本

    目录 1.黑窗口输入命令: 2.查看版本:打开tree.txt文件​编辑 1.黑窗口输入命令: mvn dependency:tree > tree.txt 2.查看版本:打开tree.txt文 ...

  5. java非法字符65288,spring-boot使用内置tomcat时http请求非法字符过滤的问题

    问题 在tomcat8.5.X以上版本中,tomcat对请求入参做了严格校验,具体参考下文资料. HTTP 400 Bad Request ... http11.Http11Processor : E ...

  6. springboot配置内置tomcat的日志

    在springboot的项目的配置文件中添加如下图所示代码 端口 server.port=8050 配置log server.tomcat.accesslog.buffered=true server ...

  7. Spring Boot修改内置Tomcat端口号

    http://blog.csdn.net/argel_lj/article/details/49851625 转载于:https://www.cnblogs.com/diyunpeng/p/76661 ...

  8. SpringBoot内置Tomcat浅析

    一.SpringBoot框架内置Tomcat,开发非常方便,随着SpringBoot的框架升级,内置Tomcat也更新版本.本文SpringBoot框架版本:2.2.10. 1.如何查看SpringB ...

  9. Spring Boot2.0之 原理—创建内置Tomcat容器

    前面所述的https://www.cnblogs.com/toov5/p/9823728.html 中的第一条先不赘述了,就是玩了maven 重点介绍后两条 首先内置Tomcat: SpringBoo ...

  10. 项目部署—移除Spring Boot内置Tomcat,部署到云服务器Tomcat

        以往部署Java web项目到阿里云服务器时,直接将项目打包成war包,放到阿里云服务器中tomcat的webapps目录下,就可以访问了.   SpringBoot默认给我们提供了内置tom ...

最新文章

  1. Firefox 3.6最新功能:网页可根据设备方位调整角度
  2. SHELL相关的特殊字符总结
  3. linux ngx listen的解析
  4. 中的 终端报错怎么看原因_《琅琊榜》中太子被封禁,高湛引皇上看桂花的真正原因是什么?...
  5. ubuntu环境搭建五:修改中文字符集
  6. 批量替换_【脚本】AE照片墙模板图片批量替换脚本Multi Replacer
  7. [详细功能介绍]Stimulsoft报表全线更新至2012.3
  8. lableme标注的json文件转为mask r-cnn训练用的coco数据集格式
  9. 宇宙质量估算为10^53KG
  10. paip.代码生成器数据源格式最佳实践
  11. 艺术名家|翰墨异彩“三分书”——访知名书法家蔡爱军
  12. win10安装(U盘启动)
  13. 程序员必须知道的硬件常识(一):打印机之彩印缺少某种颜色的解决方法
  14. pdf和图像文字识别提取工具
  15. Unity升级2018与Google Android64位支持
  16. Chrome自动更新到78.0.3904.70后出现“Aw, Snap!”错误,所有页面不能打开。
  17. Js 显示 服务器 目录,js获得服务器目录
  18. java .class文件为什么以CAFEBABE开头?
  19. softmax+cross-entropy的前向计算、反向传播的公式推导
  20. 【并发】线程同步——锁Lock与synchronized比较

热门文章

  1. [GRE] 填空机经 Section51-55
  2. 在线php网站扫描,一个简单的php在线端口扫描器
  3. 顶尖数据恢复软件免费中文版
  4. “狼牙抓鸡”现身IT江湖
  5. mysql取出qq表情_mysql存储emoji表情报错处理,qq互联mysql存储昵称中带表情的数据时报错。...
  6. 在centos7环境下运行.exe文件
  7. 完全免费软件开发论坛介绍
  8. Chrome浏览器安装扩展程序后菜单栏图标不显示
  9. 勤哲excel服务器端口协议,用勤哲Excel服务器实现管理完整.doc
  10. JSP九大内置对象以及作用