> Linux新闻 >

Spring Boot 2.6.0 正式发布

新特性

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

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)