spring5新特性

1.Spring 5于2017年底发布.Spring 5为Spring框架带来了大量更新。

1spring5功能

1.1 Java基线支持
	1.2核心API增强功能
	1.3 Spring Web MVC增强功能
	1.4 Spring WebFlux
	1.5使用Kotlin支持进行功能编程
	1.6测试改进
	1.7已弃用的支持和已删除的软件包

Java Baseline支持

 1. Spring 5在Java 8上运行,因此spring代码可以利用lambda表达式来提高代码的可读性。
 2. Spring 5也支持java 9,因此我们也可以在基于模块的架构上创建我们的应用程序。
 3. Spring 5支持Java EE 7,并且与Java EE 8兼容。所以我们可以在我们的应用程序中使用Servlet4.0Bean Validation 2.0,JPA 2.2。
 4. 我们也可以使用它们的旧版本,即Servlet 3.1,Bean Validation 1.1,JPA 2.1。

Spring 5应用程序首选服务器版本是Tomcat 8.5 +,Jetty 9.4+和WildFly 10+。

核心API增强功能

包级别的非null API声明。可以为Nullable参数,字段和返回值显式注释@Nullable注释。
文件操作通过NIO 2流执行,即没有FileInput / Output Stream。
对于基于文件的应用程序,这是一个很好的增强和性能提升
Spring Framework 5.0附带了自己的Commons Logging桥接器; spring-jcl而不是标准的CommonsLogging。
支持通过索引文件“META-INF / spring.components”而不是类路径扫描提供弹簧组件信息。
如果您有一个大型弹簧项目和许多弹簧组件,这将大大缩短启动时间。
对于开发人员来说也会更好,因为我们可以直接查看指定的文件来找出应用程序入口点,
而不是搜索整个类路径文件。

Spring Web MVC增强功能

Spring MVC模块在使用最新的Java EE技术方面进行了重大改革。一些主要的改进是:

  • Spring提供的Filter实现中的完整Servlet 3.1签名支持。 支持PushBuilderSpring
  • MVC控制器方法中的Servlet 4.0 参数。 公共服务器上的Servlet 3.0多部分解析的MaxUploadSizeExceededException。
  • 通过MediaTypeFactory委托统一支持常见媒体类型。 使用Kotlin,Lombok,
  • @ ConstructorProperties 与不可变对象进行数据绑定。 支持JSON绑定API作为Jackson和GSON 的替代品。
  • 支持Reactor 3.1 Flux和Mono以及RxJava 1.3和2.1作为Spring MVC控制器方法的返回值。
  • 支持ResponseStatusException作为程序替代@ResponseStatus。

Spring WebFlux

Spring WebFlux是新模块,它是模块的替代品,spring-webmvc并建立在反应式框架之上。此模块用于创建基于事件循环执行模型的完全异步和非阻塞应用程序。

  • Spring-core中的反应性基础设施,如编码器和解码器,用于编码和解码对象流。
  • @Controller样式,基于注释的编程模型,类似于Spring MVC,但在WebFlux中支持,在反应堆栈上运行。
  • 新的WebClient,具有用于HTTP调用的功能和反应API,与RestTemplate相当,但通过流畅的API,并且在基于WebFlux基础结构的非阻塞和流式方案中也非常出色。
    使用Kotlin支持进行功能编程
  • Spring 5现在也支持Kotlin编程。这是支持函数式编程的重要一步,就像Java也在向函数式编程迈进一样。

支持Null-Safe API

  • 支持带有可选参数和默认值的Kotlin不可变类。
  • 利用Kotlin reified类型参数来避免在各种API(如RestTemplate或WebFlux API)中明确指定用于序列化/反序列化的Class。
  • 支持带有可选参数的Kotlin自动装配构造函数。
    @ Autowired / @Inject和@RequestParam / @RequestHeader / etc注释的Kotlin零安全支持。
    测试改进
  • 支持JUnit 5
  • 支持Spring TestContext Framework中的并行测试执行

弃用的支持和已删除的包

  • 删除的包beans.factory.access,jdbc.support.nativejdbc,mock.staticmock从spring-aspects模块。

  • 删除了包web.view.tiles2并orm.hibernate3/hibernate4丢弃了。这意味着如果您计划使用Spring 5,您还必须使用Hibernate 5。

不再支持旧技术Portlet,Velocity,JasperReports,XMLBeans,JDO,Guava。如果您正在使用其中任何一种,那么要么迁移到其他技术,要么继续使用Spring 4。
这就是对Spring 5功能的快速概述。

参考原文:https://blog.youkuaiyun.com/aria_miazzy/article/details/88381514

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值