Spring Boot 2.4.0
全新的配置文件处理(properties/yml),改变了配置文件的加载逻辑,目的是简化和合理化外部配置的加载方式,但是它可能具有不向下兼容性。改变了处理application.properties和application.yml文件的方式:
当使用复杂的文件或者是spring cloud的配置中心,此时默认不向下兼容。需要设置spring.config.use-legacy-processing = true #
多文档yaml文件,更需要注意要按照声明文档的顺序添加属性。(老版本中个文档的添加顺序基于配置文件的激活顺顺序,所以如果有互相覆盖的属性,应该保证执行的属性在文件中位置低)
嵌入式数据库检测
改进嵌入式数据库检测机制:仅当数据库在内存中时才将其视为嵌入式数据库。如果使用H2,HSQL等产品,但是你是基于文件的持久性或使用的是服务器模式,那么将不会检测为内存数据库。
不再注册DefaultServlet
从spring boot 2.4开始,默认将不会再注册DefaultServlet。因为在绝大多数的应用中,spring MVC提供的DefaultServlet是唯一需要被注册的Servlet.
DefaultServlet是Java EE提供的标准技术,Tomcat丶Jetty都提供了这个类。当别的servlet都没有匹配上是就交给它来处理,一般用于处理静态资源。
HTTP traces不再包含cookie头
HTTP traces默认将不再包含请求头cookie以及响应头set-cookie
AbstractServletWebServerFactory:
// 2.4.0之前版本,默认值是true
private boolean registerDefaultServlet = true;
// 2.4.0以及之后版本,默认值是false
private boolean registerDefaultServlet = false;
Spring Boot 2.4.1
Spring Boot 2.4.1是2020年的最后一次版本更新,目的是对于Spring Boot 2.4.0版本的维护和bug修复
通过通配符匹配的配置文件相互覆盖的问题
配置属性与JavaBean之间绑定的顺序问题
允许递归配置文件组的引用
外部应用程序属性加载顺序的问题
@Name在Kotlin中绑定失败的问题
Redis健康检查器对性能消耗过大的问题
Actuator端点在MVC和WebFlux下运行时,无法正确响应自定义HTTP状态码
Actuator的env端点没有正确显示包装类型的数据
通过配置树绑定非字符串属性时,找不到转换器的问题
使用Log4J调用LoggingSystem时会抛出NullPointerException的问题
加载属性文件的时候,“#”标注之后的内容会丢失
在启用WebTestClientContextCustomizer之前,确保WebClient已经存在。