Spring Framework 5.3.9 和 5.2.16 现已推出

来源: 投稿
作者: mateplus
2021-07-15

北京时间7月14日,Spring Framework推出 5.3.95.2.16 两个新版本。Spring Framework5.3.9包括45 个修复和改进。Spring Framework5.2.16包括12 个选定的修复和改进

随着越来越多的人使用Spring Boot 逐渐忽略了Spring Framework的关注,其实两者的关系密不可分,对Spring Boot 如果想要能研究得更深入,那么,就需要对Spring Framework有更足够的了解和应用。

在这里插入图片描述

一、介绍Spring Framework

Spring 使创建 Java 企业应用程序变得容易。它提供了在企业环境中使用 Java 语言所需的一切,支持 Groovy 和 Kotlin 作为 JVM 上的替代语言,并且可以根据应用程序的需要灵活地创建多种架构。从 Spring Framework 5.1 开始,Spring 需要 JDK 8+(Java SE 8+)并为 JDK 11 LTS 提供开箱即用的支持。建议将 Java SE 8 update 60 作为 Java 8 的最低补丁版本,但通常建议使用最新的补丁版本。

Spring 支持广泛的应用场景。在大型企业中,应用程序往往存在很长时间,并且必须运行在升级周期不受开发人员控制的JDK和应用程序服务器上。其他可能作为嵌入服务器的单个 jar 运行,可能在云环境中。还有一些可能是不需要服务器的独立应用程序(例如批处理或集成工作负载)。

Spring 是开源的。它拥有一个庞大而活跃的社区,可根据各种实际用例提供持续的反馈。这帮助 Spring 在很长一段时间内成功发展。

二、Spring Framework 与Spring Boot的版本对应关系

Spring boot 版本 Spring Framework jdk 版本 maven 版本
1.5.0.RELEASE 4.3.6.RELEASE 7 3.2+
1.5.2.RELEASE 4.3.7.RELEASE 7 3.2+
1.5.3.RELEASE 4.3.8.RELEASE 7 3.2+
1.5.4.RELEASE 4.3.9.RELEASE 7 3.2+
1.5.5.RELEASE 4.3.10.RELEASE 7 3.2+
1.5.7.RELEASE 4.3.11.RELEASE 7 3.2+
1.5.8.RELEASE 4.3.12.RELEASE 7 3.2+
1.5.9.RELEASE 4.3.13.RELEASE 7 3.2+
2.0.0.RELEASE 5.0.2.RELEASE 8 3.2+
2.1.*.RELEASE 5.1.*.RELEASE 8 3.2+
2.2.*.RELEASE 5.2.*.RELEASE 8 3.3+
2.3.*.RELEASE 5.2.*.RELEASE 8+ 3.3+
2.4.* 5.3.* 8+ 3.3+
2.5.* 5.3.* 8+ 3.3+
2.6.* 5.3.* 8+ 3.3+

三、主要更新内容

5.3.9

3.1 新的功能 

  • 配置 CommonsMultipartResolver 以支持特定的 HTTP 方法#27161
  • 允许 BeanDefinitionBuilder 使用ResolvableType设置实例供应商#27160
  • @ResponseStatusMessageSource 未解决 on handler 方法的原因#27156
  • ResourceHandlerRegistry#getHandlerMapping 应该在外循环中初始化一次处理程序#27153
  • 使用 BeanDefinitionBuilder 设置合成标志#27141
  • BeanCreationException 错误消息应始终包括声明构造函数(或工厂方法)类#27139
  • 改进 Jetty 10 检查 JettyClientHttpResponse #27136
  • Jetty10RequestUpgradeStrategy 使用旧的码头 9 类 HandshakeRFC6455 #27121
  • 使用 Jetty 10 及其反应式客户端的 ClassNotFoundException #27112
  • 尽可能使用 StringBuilder.append(char) #27098
  • 考虑“wss”和“https”作为转发标头检查中的安全标志#27097
  • SynchronossPartHttpMessageReader 应仅在需要时创建临时目录#27092
  • 在 BeanMethod 和 *Metadata 类型中实现 equals、hashCode 和 toString #27076
  • 删除 BeanUtils 中的日志依赖#27070
  • 从自动代理中排除密封接口(为了兼容 JDK 17)#27027
  • 使用 TransactionOperator 运行事务时出现 Blockhound 错误#26955
  • 配置 StandardServletMultipartResolver 以仅支持 multipart/form-data #26826
  • 添加一种从 ThreadPoolTask​​Scheduler 设置 executeExistingDelayedTasksAfterShutdown 的方法#26719
  • 在设置本地值之前在 ThreadPoolTask​​Executor 中应用动态更改#26700

3.2 Bug修复

  • JettyHttpHandlerAdapter 不知道 Server[Request|Response]Wrapper #27146
  • {*path} 模式 (CaptureTheRestPathElement) 在@PathVariable路径#27132 中包含未记录的前导斜杠
  • 在 jetty 10 中调用 JettyWebSocketSession.getRemoteAddress 时出现 NoSuchMethodError #27120
  • CronExpression在 spring-context-5.3.8 上仍然被破坏#27117
  • SimpleMethodMetadataReadingVisitor.Source.toString() 省略了方法参数的分隔符#27095
  • DefaultPathSegment 允许改变共享的空参数映射#27064
  • 使用 proxyTargetClass=true 的 AOP 自动代理和介绍建议不适用于 JDK 代理目标#27044
  • ServletRequestDataBinder 假定标准 servlet 多部分处理#26999
  • DataClassRowMapper 不应覆盖 Kotlin 初始化属性#26569

3.3 文档

  • 将 Javadoc 添加@sinceBeanDefinitionBuilder.setSynthetic() #27155
  • 修复指向 Javadoc API 的链接#27151
  • 添加了 HandlerInterceptor 的描述#27122
  • 修复 core-beans.adoc 中的错字#27113
  • 修复 BeanDefinitionDsl.kt 中的错字#27105
  • 改进 ContentCachingRequestWrapper 的 getContentAsByteArray 方法的文档#27068
  • 修复了参考文档#27067 中内容协商默认设置的解释
  • @Valid*在参考手册中记录任何注释都会触发验证#27050
  • 改进 RequestPartMethodArgumentResolver Javadoc #27043
  • 改进 RequestResponseBodyMethodProcessor Javadoc #27042
  • 澄清 ResourceBundleMessageSource 中的 baseName 不支持多个位置#27038
  • 链接替代文档格式#27015

3.4 依赖升级

  • 适配 HtmlUnit 2.51 #27147
  • 升级至 ASM 9.2 (for early Java 18 support) #27069
  • 升级至 Kotlin 1.5.21 #27110
  • 升级至 Kotlin Coroutines 1.5.1 #27157
  • 升级至 Mockk 1.11.0 #27109
  • 升级至 Reactor 2020.0.9 #27158

四、 应用案例

MateCloud是基于Spring Cloud和Spring Boot的低代码快速开发平台,底层基于Spring Framework.

展开阅读全文
5 收藏
分享
加载中
最新评论 (1)
您好,请问向下兼容吗?现在都用什么版本的?
2021-07-15 09:37
0
回复
举报
更多评论
1 评论
5 收藏
分享
返回顶部
顶部