• Spring Boot 2.7.0发布,2.5停止维护,节奏太快了吧


    这几天是Spring版本日,很多Spring工件都发布了新版本, Spring Framework 6.0.0 发布了第 4 个里程碑版本,此版本包含所有针对 5.3.20 的修复补丁,以及特定于 6.0 分支的 39 项修复和改进。而今天Spring Boot 2.7.0Spring Security的一个分支都发布了新版本,尤其Spring Boot 2.7.0,它是一个非常重要的版本。

    Spring Boot 2.7.0

    今天最重要的是 Spring Boot 2.7.0 的发布,此版本添加了大量新功能和改进,是一个非常重要的版本。东西太多挑重点说一下。

    自动配置的更改

    Spring Boot 2.7.0对自动配置进行了不小的改动。

    自动配置注册

    现在Spring 自动配置类全限定名在META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports. 中;而以前在 META-INF/spring.factories中。现在仍然向后兼容,它们两个都会生效,但是不推荐从spring.factories加载自动配置。

    新的@AutoConfiguration 注解

    引入了新的@AutoConfiguration注释。 这个类用于声明在上面自动配置注册中的AutoConfig类,它替代了@Configuration,只有自动配置类才能使用。你还可以通过其 afterafterNamesbeforebeforeNames 属性代替 @AutoConfigureAfter@AutoConfigureBefore

    @AutoConfiguration(after = SecurityAutoConfiguration.class)
    @ConditionalOnWebApplication(type = Type.SERVLET)
    @EnableConfigurationProperties(SecurityProperties.class)
    @ConditionalOnClass({ AbstractSecurityWebApplicationInitializer.class, SessionCreationPolicy.class })
    public class SecurityFilterAutoConfiguration {
     
    }
    

    测试自动化配置

    如果你创建了自己的自动化配置类测试,你也应该参考上面自动配置注册的方式配置自动化配置类。参考Spring Boot项目中的spring-boot-test-autoconfigure模块。

    @SpringBootTest 配置项优先级

    现在你可以通过@SpringBootTestproperties属性或@TestPropertySource注解添加的测试属性,它的优先级高于通过命令行传递给args的属性。

    新的Flyway模块

    Spring Boot 2.7 升级到 Flyway 8.5(从 8.0)。自 8.0 版本以来,Flyway 对多个数据库的支持已被提取到新模块中:

    • flyway-firebird (Firebird)
    • flyway-mysql (MariaDB and MySQL)
    • flyway-sqlserver (SQL Server)

    如果您使用 Flyway 管理上述数据库,请添加相应新模块的依赖项。

    H2数据库的2.1版本

    Spring Boot 2.7 已经升级到 H2 2.1.120H2 2.x 向后不兼容并修复了许多安全漏洞。

    OkHttp 4

    由于 OkHttp 3 不再维护 ,Spring Boot 2.7 已升级到 OkHTTP 4。作为此次升级的一部分,用于控制 OkHttp 版本的属性已从 okhttp3.version 更改为 okhttp.version。如果你希望使用OkHttp 3,请修改为对应版本。

    对 Elasticsearch 的 RestHighLevelClient 的支持已弃用

    Elasticsearch 已弃用其RestHighLevelClient. 与此一致,Spring Boot 的自动配置RestHighLevelClient已被弃用。在可能的情况下,应使用自动配置的低级别RestClient。或者,考虑手动配置新客户端

    Spring Boot 2.5 的弃用

    Spring Boot 2.5 中不推荐使用的类、方法和属性已在此版本中删除。请确保在升级之前您没有调用过时的方法。

    注意:Spring Boot 2.5 版本已经停止OSS支持, 不再提供免费的安全更新和错误修复 。

    Spring GraphQL 支持

    Spring Boot 2.7现在支持Spring GraphQL,对应的starter是spring-boot-starter-graphqlGraphQL是一种用于API的查询语言,同时也是一个可以满足数据查询的语言。

    不透明令牌自省优化

    如果您在 OAuth2 资源服务器中使用不透明令牌自省,则自动配置的自省不再需要对 com.nimbusds:oauth2-oidc-sdk 的依赖。您能够从应用程序中删除该依赖项。

    Couchbase和Elasticsearch测试注解

    增加了@DataCouchbaseTest@DataElasticsearchTest分别用来测试CouchbaseElasticsearch数据库。

    Podman支持

    Maven 和 Gradle 插件现在支持在使用 Cloud Native Buildpacks 构建映像时使用 Podman 容器引擎作为 Docker 引擎的替代方案。

    难道Docker不香了吗?

    Cache2k 支持

    添加了对缓存Cache2k的依赖项管理和自动配置。可以通过定义Cache2kBuilderCustomizerbean 来自定义默认缓存设置。

    Jackson Mixin 简化注册

    Jackson 的自动配置现在将扫描您的应用程序包以查找带有@JsonMixin注解的Mixin类并注册到 ObjectMapper

    其它

    还有其它一些依赖升级,具体看官方的发行说明

    Spring Security

    在昨天Spring Security 5.7.1, 5.6.5, 5.5.8相继发布,在此之前Spring Security 6.6.0M5版本发布。

    总结

    现在版本迭代越来越快了,需要我们紧跟步伐,稍不注意就落后一大截了,学习压力是真的大,新版本我都会去学一学,但是现在感觉力不从心了,太快了。

    关注公众号:Felordcn 获取更多资讯

    个人博客:https://felord.cn

  • 相关阅读:
    GCD
    常用存储位置
    AFNetworking 不支持 text/plain,unacceptable content-type: text/plain
    iOS layer 动画
    自定义对象实现copy,遵守协议<NSCopying, NSMutableCopying>
    Objective-c学习笔记03——内存管理
    Objective-c学习笔记02——类(面向对象)01
    Objective-c学习笔记01——简介
    Objective-c——NSString
    开源网站
  • 原文地址:https://www.cnblogs.com/felordcn/p/16290847.html
Copyright © 2020-2023  润新知