Spring v6.0.12 发布
⭐ 新特性
- ArithmeticException:在
@Scheduled(fixedDelay = Long.MAX_VALUE, timeUnit = TimeUnit.MINUTES)上 long 溢出 #31210 - 对
RequestResponseBodyMethodProcessor中的resolveArgument方法进行优化 #31175 - 更新
BeanValidationBeanRegistrationAotProcessor中 validation exception 的日志级别 #31147 - 跳过在
PathMatchingResourcePatternResolver中搜索不存在的目录。#31111 - 在
Argument[Type]PreparedStatementSetter的doSetValue()中为argValue添加@Nullable#31086 - 优化
StringUtils中的 whitespace 检查 #31067 - 使用 simple JPARepository 时缺少代理提示 #31050
- 为
ReactiveAdapterRegistry中的现有 adapter 注册 override #31047 DefaultListableBeanFactory#getBeanNamesForType在解析FactoryBean时未考虑目标类型 #30987- 让
spring-core访问org.jboss.vfs,以便在WildFly上支持VfsUtils#30973 - 当
contentLength可用时,在StringHttpMessageConverter中使用readNBytes#30942 - 当数组长度不大于 1 时,跳过数组排序 #30934
- 避免对每个
SseEventBuilder条目进行刷新 #30912 - 使用
protected修饰DefaultGenerationContext(DefaultGenerationContext, String)构造函数 #30895 - 在 Spring MVC 中的
AbstractResourceResolver子类中添加缺失的@Nullable注解 #30893 - 创建 scope Bean 实例时的性能瓶颈 #30883
- 对同一 Bean 类中的多个
@Autowired方法进行确定性的 Bean 初始化 #30359 - 优化
ClassUtils#getMostSpecificMethod#30272 - Hibernate native 查询代理缺少 native 提示 #29603
- 检查异常原因以支持
@PropertySource(ignoreResourceNotFound)#22276 - 调整
PayloadMethodArgumentResolver中的验证元数据处理方式 #21852
🐞 Bug 修复
- Spring Boot 启动失败
does not reside in the file system: manifoldclass://622488023/.../#31216 WebClientResponseException.getResponseBodyAs抛出异常,而不是返 empty body 的null#31179- 未完全清除注解缓存可能导致类加载器泄漏 #31170
- Spring
LogFactory实现在抽象方法声明方面背离了原始 ApacheLogFactory#31166 - Graalvm 原生镜像功能
PreComputeFieldFeature禁用所有 netty native transport #31141 - 由于
nullSafeConciseToString()在Map/Collection代理上调用isEmpty()导致 Bean 注入失败 #31138 - R2DBC:与现有事务嵌套后跳过释放连接 #31133
SpelExpressionParser对无效表达式抛出IllegalStateException而不是ParseException#31097@Nested测试类中的@DynamicPropertySource不能覆盖外层类的动态属性 #31083- Spring Boot WebFlux 对无效输入进行验证 #31045
TransactionalApplicationListenerMethodAdapter应在目标类方法上找到@TransactionalEventListener#31034ScheduledAnnotationBeanPostProcessor:优雅停机不应中断当前正在运行的 Job #31019- 在使用 Hibernate 6 的自定义类型中未调用
TypeBootstrapContext构造函数#30924 - 在特殊桥接方法的情况下,
MethodIntrospector.selectMethods(?)无法找到方法 #30906 - Spring webflux
@ModelAttribute注解方法无法与 kotlin suspend 方法一起使用 #30894 - 支持 Kotlin 序列化自定义 serializer #30870
- 如果重复使用 feature name 前缀,则测试 AOT 处理失败 #30861
NoUniqueBeanDefinitionException应确保beansNameFound是可序列化的 #29753- JDK 11/17 上的
java.beans.Introspector中的ClassInfo缓存导致Permgen内存泄漏 #27781 Model.set()Kotlin 扩展方法不允许使用 null 值 #27115- 允许
PropertySourcesPlaceholderConfigurer子类自定义PropertyResolver#26761
更多详情请参阅 https://github.com/spring-projects/spring-framework/releases/tag/v6.0.12