购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.2 Spring 5.1新特性

4.2.1 核心修改

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桥。

4.2.2 核心容器更新

Spring 5.1核心容器更新如下。

· 支持“@Profile”条件中的逻辑和/或表达式。

· 嵌套配置类的一致性检测。

· 优化Kotlin bean的DSL,同一类型的多个bean的唯一隐式bean名称。

· 在BeanFactory API中统一地不暴露任何空的bean。

· 通过BeanFactory API进行编程式的ObjectProvider检索。

· ObjectProvider提供可迭代/流式访问。

· 支持在单个构造函数场景中的空集合/映射/数组注入。

4.2.3 Web修改

Spring 5.1中的Web修改如下。

· 在接口上也可以检测到控制器参数注释。

· 支持在UriComponentsBuilder中使用更严格的URI变量编码。

· spring-web模块提供FormContentFilter拦截HTTP中的PUT、PATCH和DELETE请求。

4.2.4 Spring Web MVC更新

Spring 5.1中Spring Web MVC更新如下。

· 改进后提供更加人性化和紧凑的DEBUG和TRACE日志,通过DispatcherServlet中的enableLoggingRequestDetails属性控制潜在敏感数据的DEBUG记录。

· 更新了Web区域表示。CookieLocaleResolver将发送符合RFC6265标准时区的cookie。

· 对缺少请求头、cookie和路径等异常定制了MVC异常,允许对异常进行区分和对状态代码进行区分。

· 通过ForwardedHeaderFilter集中处理“转发”类型头部。

· 除了GZip之外,还支持Brotli预编码静态资源。

4.2.5 Spring WebFlux更新

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文档。

4.2.6 Spring Messaging更新

Spring Messaging更新如下。

· 在“@MessageMapping”方法中支持响应式客户端,并支持Reactor和RxJava返回值的开箱即用。

· 提供选项以保留STOMP代理的消息发布顺序。

· “@SendTo”和“@SendToUser”都可以用于控制器方法。

· 改进了有关处理消息和消息订阅的文档。

4.2.7 Spring ORM更新

Spring ORM更新如下。

· 支持Hibernate ORM 5.3:Bean容器与Hibernate的新SPI集成。

· LocalSessionFactoryBean和HibernateTransactionManager支持JPA交互,在同一事务中允许原生Hibernate和JPA共同访问。

· 只读事务不再在内存中保留Hibernate实体快照。

4.2.8 测试更新

· WebTestClient中的Hamcrest和XML断言更新。

· 可以使用固定的WebSession配置MockServerWebExchange。 7d2EL352OA3FMe30KFpw67MzQeJgrvdEvUY07LQiOUyZRGjwF94SEKQijL5gc6kT

点击中间区域
呼出菜单
上一章
目录
下一章
×