Spring Framework 5.0耗时两年,终于在9月28日通过Spring官方博客撰文宣告发布第一个GA版本。期间经历1年多的里程碑版本和数个RC版本,现在 5.0.0.RELEASE已正式发布到了repo.spring.io和Maven中央仓库,开发者可以通过Maven或Gradle快速获取和体验:

\\

Maven:

\\

\\u0026lt;dependencies\u0026gt;\  \u0026lt;dependency\u0026gt;\    \u0026lt;groupId\u0026gt;org.springframework\u0026lt;/groupId\u0026gt;\    \u0026lt;artifactId\u0026gt;spring-context\u0026lt;/artifactId\u0026gt;\    \u0026lt;version\u0026gt;5.0.0.RELEASE\u0026lt;/version\u0026gt;\  \u0026lt;/dependency\u0026gt;\\u0026lt;/dependencies\u0026gt;\

\\

Gradle:

\\

\dependencies {\  compile 'org.springframework:spring-context:5.0.0.RELEASE'\}\

\\

快速了解5.0

\\

  • Spring Framework 5.0新特性\\t
  • 迁移到Spring Framework 5.0\\t
  • Spring Framework 5 官方FAQ\\t
  • 最新的参考文档\\t
  • Pieter关于Spring Framework 5.0中反应式编程的全面介绍文章\

新特性简介

\\

  • 要求JDK 8+和Java EE 7+ 
    \\t整个框架的代码库基于Java 8源码级别,通过泛型推断和lambda等提升了可读性。全面兼容JDK9,同时支持类路径classpath和模块路径module path;整个框架在JDK 9上编译和执行测试用例,默认依然使用JDK 8。支持JavaEE 7 API,包括Servlet 3.1、Bean Validation 1.1、JPA 2.1和JMS 2.0,以及最新的容器和服务器Tomcat 8.5+、 Jetty 9.4+、 WildFly 10+等。在运行时兼容Java EE 8 API,包括Servlet 4.0、 Bean Validation 2.0、 JPA 2.2和JSON Binding API 1.0,并在Tomcat 9.0、 Hibernate Validator 6.0和Apache Johnzon 1.1测试通过。\\t
  • 移除了的包、类和方法 
    \\t移除了包beans.factory.access、jdbc.support.nativejdbc、spring-aspects模块中的mock.staticmock、web.view.tiles2以及orm.hibernate3/hibernate4。不再支持Portlet、Velocity、JasperReports、XMLBeans、JDO和 Guava。\\t
  • 常规核心修订 
    \\t包括针对JDK 8+的增强和对JDK 9的兼容,包级别的非空API声明。5.0现在有了自己的Commons Logging桥接,会自动探测 Log4j 2.x、SLF4J及JUL (java.util.logging),不再需要外部的桥接程序。spring-core自带ASM6.0(同时还包括CGLIB 3.2.5和Objenesis 2.6)。\\t
  • 核心容器 
    \\t支持 @Nullable注解作为可选注入点声明;函数式GenericApplicationContext/AnnotationConfigApplicationContext;接口方法上的事务、缓存和异步注解一致性探测。\\t
  • Spring Web MVC 
    \\t通过Spring自带的Filter实现全面支持Servlet 3.1;controller方法中支持Servlet 4.0的PushBuilder参数;针对Servlet 3.0 multipart解析时增加 MaxUploadSizeExceededException类型异常;不可变对象的数据绑定支持(Kotlin / Lombok / @ConstructorProperties);支持JSON绑定API(Jackson 和GSON的替代方案),支持Jackson 2.9和Protubuf 3;支持Reactor 3.1;Flux、Mono以及RxJava 3.1和2.1都可以作为controller方法的返回值,以便适应新的反应式WebClient或者Spring Data Reactive repositories;新的ParsingPathMatcher替代AntPathMatcher,解析效率更高;@ExceptionHandler方法支持 RedirectAttributes参数。\\t
  • Spring WebFlux 
    \\t这是一个全新的模块,作为spring-webmvc的替代方案,基于反应式基础构建——全面异步和非阻塞,它的目的是将其用于事件循环执行模型中,用来替代传统的每个请求对应一个线程的大规模线程池模型;spring-core和spring-web中的反应式支持,比如各种编解码器等;@Controller风格的基于注解的编程模块,与Spring MVC类似,只不过在WebFlux中运行,支持反应式技术栈;新的函数式编程模型(“WebFlux.fn”)也可以替代@Controller,在路由API方面更加轻量和透明,运行在同样的反应式栈和WebFlux基础设施上;新的WebClient,用于函数式和反应式的HTTP API调用。\\t
  • Kotlin支持 
    \\t在使用Kotlin 1.1.50以上版本时,支持Null安全的API;使用Kotlin DSL的函数式bean定义。\\t
  • 测试提升 
    \\t完整支持JUnit 5的Jupitre编程和Spring TestContext Framework的扩展模型;支持并行测试执行;新的before和after测试执行回调,包括TestNG,JUnit 5和使用SpringRunner的JUnit 4(但不支持JUnit 4 规则);MockHttpServletRequest现在增加了 getContentAsByteArray()和getContentAsString()方法来访问内容;Spring MVC Test中的print()和log()方法能够打印Mock请求中的消息体,redirectedUrl()和forwardedUrl()方法能够通过变量扩展支持URI模板;对XMLUnit的支持升级到了2.3版本。\

参考链接

\\

官方博客:https://spring.io/blog/2017/09/28/spring-framework-5-0-goes-ga 
\项目主页:http://projects.spring.io/spring-framework/ 
\源码获取:https://github.com/spring-projects/spring-framework/

\\

感谢张卫滨对本文的审校。

Spring 5.0 GA版本发布,支持JDK9及反应式编程相关推荐

  1. Nacos 发布 1.0.0 GA 版本,可大规模投入到生产环境

    经过 3 个 RC 版本的社区体验之后,Nacos 正式发布 1.0.0 GA 版本,在架构.功能和 API 设计上进行了全方位的重构和升级. 1.0.0 版本的发布标志着 Nacos 已经可以大规模 ...

  2. ZLMS教学管理平台系统V1.2.0最新版本发布,支持纯Web视频直播点播,还带运营在线支付功能!完全免费提供!...

    ZLMS教学管理平台系统V1.2.0最新版本发布,支持纯Web视频直播,点播!还带在线支付功能! ZLMS 开发团队在综合参考了各方面的合理建议之后,经过两个多月的紧张开发及测试,终于发布V1.2.0 ...

  3. JeeWx捷微3.0多触点版本发布,支持微信公众号,微信企业号,支付窗——喜迎双“旦”

    喜迎双旦,JeeWx捷微3.0多触点版本发布^_^ JeeWx捷微V3.0--多触点版本管理平台(支持微信公众号,微信企业号,支付窗) JeeWx捷微V3.0.0版本是一个颠覆和跨时代版本,官方团队历 ...

  4. jeewx-api 1.0.5 版本发布,微信SDK接口封装(支持微信第三方开放平台)

    JeeWx-api 1.0.5 版本发布,微信SDK接口封装 1.jeewx-api为何诞生 现在微信越来越火,基于微信的公众号和服务号越来越丰富,虽然微信帮助文档已经提供了相关的接口,但是接口比较多 ...

  5. Kong 1.0 GA 版本正式发布,微服务 API 网关

    Kong 1.0 GA 版本已正式发布,这是一款可扩展.快速且开源的微服务 API 网关,用于管理.保护与连接混合及云原生架构.Kong 运行于全部服务之前,并可以通过插件实现各种扩展,例如身份验证. ...

  6. 全面提升易用性:OpenClusterManagement 0.7 版本发布

    简介:千呼万唤始出来,三月末 OpenClusterManagement 社区正式发布了 v0.7 版本.在新的版本有一系列新的功能特性欢迎感兴趣的读者体验探索,同时在这个版本中社区维护者对目前已有的 ...

  7. Fluid 0.5 版本发布:开启数据集缓存在线弹性扩缩容之路

    作者 | 顾荣  南京大学PASALab, Fluid项目co-founder 来源 | 阿里巴巴云原生公众号 导读:为了解决大数据.AI 等数据密集型应用在云原生场景下,面临的异构数据源访问复杂.存 ...

  8. 阿里百万级规模开源容器 PouchContainer GA 版本发布,邀您参与上海 Meetup 共话容器未来

    从去年杭州云栖大会的宣布开源,到现在不到一年的时间内,阿里巴巴主导的容器技术 PouchContainer 已经完全达到生产级别,正式发布 GA 版本.此版本延续以往的节奏,继续在 Cloud Nat ...

  9. P3-weixin-2.0.1 版本发布,JAVA微信插件框架

    P3-weixin-2.0.1版本发布(JAVA微信插件框架) P3-Weixin是轻量级Java插件开发框架,采用主流JAVA技术,集成强大代码生成器,增删改查一键生成,封装统一后台管理系统,不仅适 ...

最新文章

  1. 不同机器互相调用WebService或者HTTP一定要telnet 测试
  2. 抽象工厂模式_常用设计模式--抽象工厂模式
  3. U盘安装CentOS7跳坑记
  4. html5实现圆圈里带一个三角形,HTML5 Canvas圆圈里面的三角形变换动画
  5. 阿里宜搭发布专有云版本,基于云原生的应用构建PaaS平台
  6. 转载:MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
  7. linux AB测试
  8. 树形结构递归_递归和匿名函数
  9. jquery mobile 中文在线文档
  10. 塔米狗上的达人名片有什么作用?
  11. Tomcat安装时提示:No Java Virtual Machine found in folder:XXX
  12. 在vue项目中插入视频
  13. 违反卖家评论政策被警告了应该怎么操作?
  14. java在线观看(jav在线网站)
  15. JAVA TOOL-【1】配置
  16. python 百度智能完善拆分识别收货人地址
  17. QuickFIX 源码分析
  18. PHP连锁美业收银系统源码
  19. vue打印兼容xp32位系统/vue的打印功能
  20. android 音频设备类型,Android 音频

热门文章

  1. 科学家解码脑信号以控制机器人假肢
  2. AR凭什么成为元宇宙和现实间的技术纽带?听听业内怎么说|量子位· 对撞派...
  3. 苹果汽车高管几乎流失殆尽,一年损失7人,新年又有人被Meta挖走
  4. 为了在元宇宙里摸到东西,扎克伯格整出了一款新电子皮肤,成本6美元
  5. 远程扫描iPhone相册?苹果的好心网友不领情
  6. 时隔3年,华为又有人入选IEEE Fellow
  7. 微软从水里捞起了一个数据中心:存储效果更好,故障率仅陆上1/8
  8. 高通5G开始挤牙膏?骁龙865+发布,性能小幅提升,一加听了要笑,魅族看了会流泪...
  9. 旷视唐文斌:你到底给谁创造了什么样的价值?这是AI产品的灵魂拷问丨MEET2020...
  10. Linux安装Composer