一、查看当前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> {
@override
public void customize(configurableservletwebserverfactory factory) {
((tomcatservletwebserverfactory) factory).setprotocol("org.apache.coyote.http11.http11nio2protocol");
((tomcatservletwebserverfactory) factory).addconnectorcustomizers(new tomcatconnectorcustomizer() {
@override
public 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接口的扩展
以上就是springboot修改内置tomcat版本的操作步骤的详细内容,更多关于springboot修改tomcat版本的资料请关注代码网其它相关文章!
发表评论