Spring Boot 2.6.0 正式发布
时间:2021-11-23 11:26 来源:linux.it.net.cn 作者:IT
新特性
1. 支持配置 Cookie SameSite
-
Strict 严格模式,必须同站请求才能发送 cookie
-
Lax 宽松模式,安全的跨站请求可以发送 cookie
-
None 禁止 SameSite 限制,必须配合 Secure 一起使用(浏览器最后的坚持)
2. Reactive Session 个性化
当前版本可以动态配置 reactive session 的有效期
server.reactive.session.timeout=30
3. 支持自定义脱敏规则
关于 SpringBoot 端点敏感数据脱敏,之前在文章 Spring Boot 2.3 新特配置文件属性跟踪 ,简单讲是敏感的一些字段予以脱敏输出。
4. Redis 链接自动配置链接池
当应用依赖中包含 commons-pool2.jar 会自动配置 redis 链接池 (Jedis Lettuce 都支持)
如果你想关闭则通过如下属性
spring.redis.jedis.pool.enabled=false
spring.redis.lettuce.pool.enabled=false
5. 端点新增运行时 Java 信息
management.info.java.enabled=true
-
输出如下
{
"java": {
"vendor": "BellSoft",
"version": "17",
"runtime": {
"name": "OpenJDK Runtime Environment",
"version": "17+35-LTS"
},
"jvm": {
"name": "OpenJDK 64-Bit Server VM",
"vendor": "BellSoft",
"version": "17+35-LTS"
}
}
}
6. 构建信息个性化
-
通过 spring-boot-maven-plugin 支持自动生成此次构建信息的 build-info.properties
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludeInfoProperties>
<excludeInfoProperty>version</excludeInfoProperty>
</excludeInfoProperties>
</configuration>
</plugin>
7. 启动信息新增指标
application.started.time: 启动应用程序所需的时间
application.ready.time: 启动应用到对外提供服务所需时间
8. 磁盘空间指标
disk.free 磁盘空闲
disk.total 磁盘总空间
9. Docker 镜像构建
之前版本有分享 「Spring Boot 2.4 新特性」一键构建 Docker 镜像, Spring Boot 内置 docker-maven-plugin 插件就是为了帮助我们在 Maven 工程中,通过简单的配置,自动生成镜像并推送到仓库中。
spring boot 2.6 进行功能增强:
-
支持自定义镜像 TAG
-
网络配置
-
构建缓存配置
重要变更
1. 完全移除 2.4 版本中的过期属性
-
Spring MVC 和 servlet 部分属性已被删除,
旧属性(已删除)
新属性
spring.web.locale
spring.mvc.locale
spring.web.locale-resolver
spring.mvc.locale-resolver
spring.web.resources.*
spring.resources.*
management.server.base-path
management.server.servlet.context-path
-
Logback 常量 LoggingSystemProperties 完全删除,取而代之的是 LogbackLoggingSystemProperties
-
ConfigFileApplicationListener 完全删除,使用 ConfigDataEnvironmentPostProcessor 替代
-
Undertow 容器的个性化参数 isEagerInitFilters/setEagerInitFilters 完全删除,已被 isEagerFilterInit/替换 setEagerFilterInit
-
SpringApplication.contextClass() 完全删除,使用 contextFactory() 代替
-
CloudFoundryVcapEnvironmentPostProcessor 的大部分方法被移除,所以 CloudFoundry PaaS 初期慎用
-
ApplicationEnvironmentPreparedEvent,ApplicationStartingEvent 的部分方法以及 SpringApplicationRunListener 已被删除以支持 BootstrapContext
-
Spring Data Cassandra 健康指标端点已被删除
-
点击查看: 详细的属性变更说明[1]
默认情况完全禁止 bean 循环引用
1637197849
┌─────┐
| a (field private com.example.demo.B com.example.demo.A.b)
↑ ↓
| b (field private com.example.demo.A com.example.demo.B.a)
└─────┘
Action:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
-
如果对应 bean 循环引用的代码不好修改,可以通过如下配置允许使用
spring.main.allow-circular-references=true
2. SpringMVC 默认路径匹配策略
Spring MVC 处理程序映射匹配请求路径的默认策略已从 AntPathMatcher 更改为PathPatternParser。
-
PathPattern 性能比 AntPathMatcher 好。理论上 pattern 越复杂,PathPattern 的优势越明显
-
如果需要将默认值切换回 AntPathMatcher,可设置如下属性
spring.mvc.pathmatch.matching-strategy=ant-path-matcher
3. 默认禁用执行器环境信息
management.info.env.enabled=true
4. 应用启动信息记录变更
记录到 SpringBoot 启动日志的 spring.boot.application.running 的属性,已重命名为 spring.boot.application.read
参考资料
[1] 点击查看: 详细的属性变更说明: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6.0-Configuration-Changelog
(责任编辑:IT)
新特性1. 支持配置 Cookie SameSite
2. Reactive Session 个性化当前版本可以动态配置 reactive session 的有效期 server.reactive.session.timeout=30 3. 支持自定义脱敏规则关于 SpringBoot 端点敏感数据脱敏,之前在文章 Spring Boot 2.3 新特配置文件属性跟踪 ,简单讲是敏感的一些字段予以脱敏输出。
4. Redis 链接自动配置链接池当应用依赖中包含 commons-pool2.jar 会自动配置 redis 链接池 (Jedis Lettuce 都支持) 如果你想关闭则通过如下属性 spring.redis.jedis.pool.enabled=false spring.redis.lettuce.pool.enabled=false 5. 端点新增运行时 Java 信息management.info.java.enabled=true
{ "java": { "vendor": "BellSoft", "version": "17", "runtime": { "name": "OpenJDK Runtime Environment", "version": "17+35-LTS" }, "jvm": { "name": "OpenJDK 64-Bit Server VM", "vendor": "BellSoft", "version": "17+35-LTS" } } } 6. 构建信息个性化
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludeInfoProperties> <excludeInfoProperty>version</excludeInfoProperty> </excludeInfoProperties> </configuration> </plugin> 7. 启动信息新增指标application.started.time: 启动应用程序所需的时间 application.ready.time: 启动应用到对外提供服务所需时间 8. 磁盘空间指标disk.free 磁盘空闲 disk.total 磁盘总空间 9. Docker 镜像构建之前版本有分享 「Spring Boot 2.4 新特性」一键构建 Docker 镜像, Spring Boot 内置 docker-maven-plugin 插件就是为了帮助我们在 Maven 工程中,通过简单的配置,自动生成镜像并推送到仓库中。 spring boot 2.6 进行功能增强:
重要变更1. 完全移除 2.4 版本中的过期属性
默认情况完全禁止 bean 循环引用
1637197849 ┌─────┐ | a (field private com.example.demo.B com.example.demo.A.b) ↑ ↓ | b (field private com.example.demo.A com.example.demo.B.a) └─────┘ Action: Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
spring.main.allow-circular-references=true 2. SpringMVC 默认路径匹配策略Spring MVC 处理程序映射匹配请求路径的默认策略已从 AntPathMatcher 更改为PathPatternParser。
spring.mvc.pathmatch.matching-strategy=ant-path-matcher 3. 默认禁用执行器环境信息management.info.env.enabled=true 4. 应用启动信息记录变更记录到 SpringBoot 启动日志的 spring.boot.application.running 的属性,已重命名为 spring.boot.application.read 参考资料[1] 点击查看: 详细的属性变更说明: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6.0-Configuration-Changelog (责任编辑:IT) |