这几天是Spring版本日,很多Spring神器都发布了新版本,SpringFramework6.0.0发布了第四个里程碑版本,这里发布包含5.3.20的所有修复,以及6.0分支特定的39个修复和改进。今天,SpringBoot2.7.0和SpringSecurity的一个分支发布了新版本,尤其是SpringBoot2.7.0,这是一个非常重要的版本。SpringBoot2.7.0今天最重要的是SpringBoot2.7.0的发布。该版本增加了许多新功能和改进,是一个非常重要的版本。需要关注的事情太多了。对自动配置的更改SpringBoot2.7.0对自动配置进行了相当多的更改。自动配置注册Spring自动配置类完全限定名称现在位于META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports中。以前在META-INF/spring.factories中。仍然为了向后兼容,它们都可以工作,但是不推荐从spring.factories加载自动配置。新的@AutoConfiguration注释引入了新的@AutoConfiguration注释。该类用于声明上面自动配置注册中的AutoConfig类。它取代了@Configuration,只能使用自动配置类。您还可以替换@AutoConfigureAfter和@AutoConfigureBefore@AutoConfiguration(after=SecurityAutoConfiguration.class)@ConditionalOnWebApplication(type=Type.SERVLET)@EnableConfigurationProperties(SecurityProperties.class)@ConditionalApperizOnClass({WebAbstractSecurationclass,SessionCreationPolicy.class})publicclassSecurityFilterAutoConfiguration{}测试自动化配置如果你创建自己的自动化配置类测试,你也应该参考上面的自动配置注册方法来配置自动化配置类。参考SpringBoot项目中的spring-boot-test-autoconfigure模块。@SpringBootTest配置项优先级现在可以通过@SpringBootTestproperties属性或@TestPropertySource注解添加测试属性,其优先级高于通过命令行传递给args的属性。新的Flyway模块SpringBoot2.7升级到Flyway8.5(从8.0开始)。从8.0版本开始,Flyway对多数据库的支持被提取到新的模块中:flyway-firebird(Firebird)flyway-mysql(MariaDBandMySQL)flyway-sqlserver(SQLServer)如果使用Flyway管理以上数据库,请添加依赖对于相应的新模块。H2数据库SpringBoot2.7的2.1版本已经升级到H22.1.120。H22.x向后不兼容并修复了许多安全漏洞。OkHttp4由于OkHttp3不再维护,SpringBoot2.7已经升级到OkHTTP4。作为此次升级的一部分,用于控制OkHttp版本的属性已从okhttp3.version更改为okhttp.version。如果要使用OkHttp3,请修改为对应的版本。已弃用对Elasticsearch的RestHighLevelClient的支持Elasticsearch已弃用其RestHighLevelClient。与此一致,SpringBoot的自动配置的RestHighLevelClient已被弃用。在可能的情况下,应使用自动配置的低级RestClient。或者,考虑手动配置新客户端。SpringBoot2.5中的弃用SpringBoot2.5中弃用的类、方法和属性已在此版本中删除。请确保在升级之前没有调用已弃用的方法。注意:SpringBoot2.5版本已经停止对OSS的支持,不再提供免费的安全更新和bug修复。SpringGraphQL支持SpringBoot2.7现在支持SpringGraphQL,对应的starter是spring-boot-starter-graphql。GraphQL是一种API查询语言,也是一种可以满足数据查询的语言。不透明令牌自省优化如果您在OAuth2资源服务器中使用不透明令牌自省,则自动配置的自省不再需要对com.nimbusds:oauth2-oidc-sdk的依赖。您可以从您的应用程序中删除此依赖项。Couchbase和Elasticsearch测试注解添加了@DataCouchbaseTest和@DataElasticsearchTest分别测试Couchbase和Elasticsearch数据库。Podman支持Maven和Gradle插件现在支持在使用CloudNativeBuildpacks构建图像时使用Podman容器引擎替代Docker引擎。Docker不香吗?Cache2k支持为缓存Cache2k添加了依赖管理和自动配置。可以通过定义Cache2kBuilderCustomizerbean来自定义默认缓存设置。JacksonMixin简化注册Jackson的自动配置现在将扫描您的应用程序包以查找使用@JsonMixin注释的Mixin类,并将它们注册到ObjectMapper。还有其他依赖升级,详见官方releasenotes。SpringSecurity昨天作为SpringSecurity5.7.1、5.6.5和5.5.8发布。在此之前,发布了SpringSecurity6.6.0的M5版本。综上所述,版本的迭代越来越快,我们需要跟上节奏。如果我们不注意,我们就会落后很多。学习压力真的很大。我会学习新版本的,但是现在感觉力不从心,太快了。关注公众号:Felordcn获取更多资讯个人博客:https://felord.cn
