Spring 5.1核心修改如下。
· 在类路径和模块路径上对JDK 11的无警告支持。
· 支持Graal原生图像约束。
· Reactor Core升级到Reactor Core 3.2和Reactor Netty升级到Reactor Netty 0.8(Reactor Californium)。
· ASM升级到ASM 7.0和CGLIB升级到CGLIB 3.2.8。
· 在FileSystemResource中提供NIO 2.0路径支持(取代PathResource)。
· 核心类型和注释解析的性能改进。
· 可以通过标准的Commons Logging检测Spring的JCL桥。
Spring 5.1核心容器更新如下。
· 支持“@Profile”条件中的逻辑和/或表达式。
· 嵌套配置类的一致性检测。
· 优化Kotlin bean的DSL,同一类型的多个bean的唯一隐式bean名称。
· 在BeanFactory API中统一地不暴露任何空的bean。
· 通过BeanFactory API进行编程式的ObjectProvider检索。
· ObjectProvider提供可迭代/流式访问。
· 支持在单个构造函数场景中的空集合/映射/数组注入。
Spring 5.1中的Web修改如下。
· 在接口上也可以检测到控制器参数注释。
· 支持在UriComponentsBuilder中使用更严格的URI变量编码。
· spring-web模块提供FormContentFilter拦截HTTP中的PUT、PATCH和DELETE请求。
Spring 5.1中Spring Web MVC更新如下。
· 改进后提供更加人性化和紧凑的DEBUG和TRACE日志,通过DispatcherServlet中的enableLoggingRequestDetails属性控制潜在敏感数据的DEBUG记录。
· 更新了Web区域表示。CookieLocaleResolver将发送符合RFC6265标准时区的cookie。
· 对缺少请求头、cookie和路径等异常定制了MVC异常,允许对异常进行区分和对状态代码进行区分。
· 通过ForwardedHeaderFilter集中处理“转发”类型头部。
· 除了GZip之外,还支持Brotli预编码静态资源。
Spring WebFlux更新如下。
· 使用Reactor Netty 0.8运行时服务器端支持HTTP/2。
· 改进后更加人性化和紧凑的DEBUG和TRACE日志。
· HTTP请求和WebSocket会话的相关日志记录。
· 控制潜在敏感数据的DEBUG记录。通过CodecConfigurer的defaultCodecs属性控制。
· 会话cookie已具有SameSite = Lax功能,可以防止CSRF攻击。
· 支持Protobuf序列化,包括消息流。
· 支持Jetty响应式HTTP客户端的WebClient连接器。
· 支持WebSocketSession属性设置。
· 改进有关反应式WebSocket API文档。
Spring Messaging更新如下。
· 在“@MessageMapping”方法中支持响应式客户端,并支持Reactor和RxJava返回值的开箱即用。
· 提供选项以保留STOMP代理的消息发布顺序。
· “@SendTo”和“@SendToUser”都可以用于控制器方法。
· 改进了有关处理消息和消息订阅的文档。
Spring ORM更新如下。
· 支持Hibernate ORM 5.3:Bean容器与Hibernate的新SPI集成。
· LocalSessionFactoryBean和HibernateTransactionManager支持JPA交互,在同一事务中允许原生Hibernate和JPA共同访问。
· 只读事务不再在内存中保留Hibernate实体快照。
· WebTestClient中的Hamcrest和XML断言更新。
· 可以使用固定的WebSession配置MockServerWebExchange。