Spring Framework v6.1.11 正式发布。
⭐ 新特性 {#-新特性}
- 在 SpEL 的
ReflectionHelper
中确保MethodHandle
的 varargs 组件类型不为null
#33193 - 在响应过程中出现 Reactor-Netty
PrematureCloseException
时,WebClient
异常消息令人困惑 #33127 - 当发现无效的
factoryBeanObjectType
属性时,在异常中包含 Bean 名称 #33117 - 在响应式缓存切面使用 Error Handler #33073
getTypeForFactoryMethod
应捕获NoClassDefFoundError
异常#33075
🐞 Bug 修复 {#-bug-修复}
- SpEL 无法使用数组调用 varargs
MethodHandle
函数 #33191 - SpEL 无法调用变量参数为零的 varargs
MethodHandle
函数 #33190 - 嵌套的 Bean 实例 Supplier 调用不会保留先前的工厂方法 #33180
DefaultErrorResponseBuilder
未实现headers(Consumer)
#33156- 修复对 Set 方法参数的违规适配 #33150
- 使用
kotlinx-serialization
时,Web Controller 调用无效正文导致结果为 500 ,而不是 400 #33138 "file:."
无法解析为java.nio.file.Path
(而纯"."
值解析为 classpath root) #33124- Mockito mock 错误地初始化为使用 AspectJ 切面的 CGLIB 代理 #33113
- 当
adaptConstraintViolations=true
时,修复使用代理验证返回值时出现的ClassCastException
异常 #33105 - Spring 正则表达式 AOP 与
@Transactional
不兼容 #33095 ReactorClientHttpConnector
为每个请求创建新的HttpClient
#33093- Trace 和 Span ID 没传播给
RequestBodyAdvice
bean #33091 - 在 Bean Definition 为
null
的情况下,早期的LocalContainerEntityManagerFactoryBean
初始化失败 #33082 - 如果
cause
为cause
,ReactorNettyClientRequest.convertException
应包含原始异常 #33080 - SpEL 在
Object...
varargs 方法中错误地用逗号分割字符串参数 #33013 - 如果使用字节数组,
ProtobufMessageConverter
无法解析 JSON Payload #27408
📔 文档 {#-文档}
- 统一 URI 编码部分的措辞 #33166
- 记录
ModelMap
不是 WebFlux 支持的参数类型 #33107 - Spring Framework 文档 "方法注入" 部分中的示例引用了错误的 Bean 名称 #33096
- 资源写入器(Resource writer)在绕过内容长度(content length)时不考虑
InputStreamResource
的子类 #33089 - 改进 FreeMarker 支持中有关编码的文档 #33071
- WebFlux 中验证失败的异常与文档不符 #33061
🔨 依赖升级 {#-依赖升级}
- 升级到 Kotlin 1.9.24 #33177
- 升级到 Kotlin Serialization 1.6.3 #33175
- 升级到 Micrometer 1.12.8 #33168
- 升级到 Reactor 2023.0.8 #33169
❤️ 贡献者 {#-贡献者}
感谢所有为此版本做出贡献的人员:
@TAKETODAY、@hunhee98、@imvtsl、@snussbaumer 和 @zizare。
Releases:https://github.com/spring-projects/spring-framework/releases/tag/v6.1.11