我的编程空间,编程开发者的网络收藏夹
学习永远不晚

简单了解Spring Framework5.0新特性

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

简单了解Spring Framework5.0新特性

SpringFramework5.0是自2013年12月版本4发布之后SpringFramework的第一个主发行版。SpringFramework项目的领导人JuergenHoeller于2016年7月28日宣布了第一个SpringFramework5.0里程碑版本(5.0M1)。

现在,将近一年的时间过去以后,我们期盼已久的RC3版本将于2017年7月18日发行。这是路线图规划中SpringFramework5.0首个GA发行版的最后一次发行。

从高层来看,SpringFramework5.0的功能可以分为:

JDK基线更新

核心框架修正

核心容器更新

含Kotlin在内的函数式编程

响应式编程模型

测试改进

库支持

中止支持

SpringFramework5.0的JDK基线更新

整个Springframework5.0代码库运行于Java8之上。因此SpringFramework5.0对环境的最低要就就是Java8。

这一点实际上对框架而言非常重要。而作为开发者的我们而言,则已经能够去藉此来享受到现代Java发行版中的所有新特性了。而框架版本还背负这支持已经不被建议使用的Java发行版的任务。

现在,框架的最低要求是Java8.

SpringFramework5.0原来是计划在Java9之上发行的。然后,在基于Java9的发行版运作了超过18个月之后,Spring团队决定将SpringFramework5.0发行版同Java9的绑定关系解除。

不过,在Java9发布的时候(计划是2017年9月份),SpringFramework5.0会准备好的。

核心框架修订

核心的SpringFramework5.0已经利用Java8所引入的新特性进行了修订。比较关键的一些如下:

基于Java8的反射增强,SpringFramework5.0中的方法参数可以更加高效的进行访问。

核心的Spring接口现在提供基于Java8的默认方法构建的选择性声明。

用@Nullable和@NotNull注解来显示表明可为空的参数和以及返回值。这样就够在编译的时候处理空值而不是在运行时抛出NullPointerExceptions。

在日志记录方面,SpringFramework5.0带来了CommonsLogging桥接模块的封装,它被叫做spring-jcl而不是标准的CommonsLogging。当然,无需任何额外的桥接,新版本也会对Log4j2.x,SLF4J,JUL(java.util.logging)进行自动检测。

有了Resourse抽象所提供的isFile指示器以及getFile方法,防御式编程方法也得到了框架的推动。

核心容器更新

SpringFramework5.0现在支持候选组件索引作为类路径扫描的替代方案。该功能已经在类路径扫描器中添加,以简化添加候选组件标识的步骤。

应用程序构建任务可以定义当前项目自己的META-INF/spring.components文件。在编译时,源模型是自包含的,JPA实体和Spring组件是已被标记的。

从索引读取实体而不是扫描类路径对于小于200个类的小型项目是没有明显差异。但对大型项目影响较大。加载组件索引开销更低。因此,随着类数的增加,索引读取的启动时间将保持不变。

加载组件索引的耗费是廉价的。因此当类的数量不断增长,加上构建索引的启动时间仍然可以维持一个常数,不过对于组件扫描而言,启动时间则会有明显的增长。

这个对于我们处于大型Spring项目的开发者所意味着的,是应用程序的启动时间将被大大缩减。虽然20或者30秒钟看似没什么,但如果每天要这样登上好几百次,加起来就够你受的了。使用了组件索引的话,就能帮助你每天过的更加高效。

你可以在Spring的Jira上了解更多关于组件索引的相关信息。

@Nullable注解现在也可以被用来作为可选注入项的指示器。@Nullable为对象使用方规定了一项义务,就是它们必须准备以为取值为null的值。在此次发布之前,实现这件事情的唯一方法就是通过Android的Nullable,CheckerFramework的Nullable,以及JSR305的Nullable。

发行说明中的其他一些新功能和增强功能包括:

在GenericApplicationContext和AnnotationConfigApplicationContext中实现函数式编程风格。

对接口方法的事务、缓存和异步注释的一致性检测。

将XML配置命名空间简化为无版本化的模式。

使用Kotlin进行函数式编程

SpringFramework5.0引入了对JetBrainsKotlin语言的支持。Kotlin是一种支持函数式编程编程风格的面向对象语言。Kotlin运行在JVM之上,但运行环境并不限于JVM。

有了对Kotlin的支持,开发者可以进行深度的函数式Spring编程,特别是在函数式Web端点以及Bean注册这些方面。

在SpringFramework5.0中,你可以为WEB的函数式API编写干净且地道的Kotlin代码,就像下面这样:

{("/movie" and accept(TEXT_HTML)).nest {GET("/", movieHandler::findAllView)GET("/{card}", movieHandler::findOneView)}("/api/movie" and accept(APPLICATION_JSON)).nest {GET("/", movieApiHandler::findAll)GET("/{id}", movieApiHandler::findOne)}}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

简单了解Spring Framework5.0新特性

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

简单了解Spring Framework5.0新特性

SpringFramework5.0是自2013年12月版本4发布之后SpringFramework的第一个主发行版。SpringFramework项目的领导人JuergenHoeller于2016年7月28日宣布了第一个SpringFra
2023-05-30

一篇文章了解php7和php8新特性

PHP7新特性?? 运算符php7以前用三目判断变量是否存在或是否为空$a=isset($_GET['a'])?$_GET['a']:1;php7新增nul
一篇文章了解php7和php8新特性
2024-04-15

简单了解Linux性能监控命令free

在系统遇到各种IO瓶颈,内存使用率高,cpu使用率高等问题时,我们如何来定位错误?linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下
2022-06-04

快速了解PHP7.X各版本的新特性

本篇文章带大家带大家了解一下PHP7.X各版本(7.0、7.1、7.2、7.3、7.4)的新特性,有需要的可以看看,希望对大家有所帮助!大家都知道,php现在在不断地更新和壮大,每个版本都有一次性能的提升,接下来我将给大家讲解下PHP7.X的新的特性。我会按照每个版本的特性进行讲解。PHP7.0新特性 PHP7.1新特性 PHP7.2新特性PHP7.3新特性PHP7.4新特性#add-miao-di
2022-08-08

了解Go语言新特性,提升编程技能

Go语言自问世以来,一直备受程序员们的喜爱,其简洁的语法和高效的性能让其成为许多开发人员的首选编程语言。随着Go语言不断发展,新的特性和功能不断被引入,这些新特性不仅提升了Go语言的编程体验,还为开发人员提供了更多的选择和灵活性。本文将介
了解Go语言新特性,提升编程技能
2024-03-09

向Rust学习Go考虑简单字符串插值特性示例解析

这篇文章主要为大家介绍了向Rust学习Go考虑简单字符串插值特性示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-15

Java8新特性之精简的JRE详解_动力节点Java学院整理

Oracle公司如期发布了Java 8正式版!没有让广大javaer失望。对于一个人来说,18岁是人生的转折点,从稚嫩走向成熟,法律意味着你是完全民事行为能力人,不再收益于未成年人保护法,到今年为止,java也走过了18年,java8是一个
2023-05-31

了解PHP8的重要特性:掌握新版本PHP的重要变化

PHP8的重要更新:了解新版本PHP带来的重要改变,需要具体代码示例随着PHP 8的发布,开发人员有了一个非常重要的工具来提高他们的应用程序性能和安全性。PHP团队在这个版本中引入了许多令人兴奋的新功能和改进,包括JIT编译、类型系统的提
了解PHP8的重要特性:掌握新版本PHP的重要变化
2024-01-13

【Java基础教程】(七)面向对象篇 · 第一讲:上干货!面向对象的特性、类与对象、内存结构引用分析、垃圾收集器 GC处理、封装性详解、构造方法、匿名对象、简单 Java 类~

Java基础教程之面向对象 · 第一讲 🍉 篇章介绍本节学习目标1️⃣ 面向对象的三个特性2️⃣ 类与对象2.1 基本概念2.2 定义 3️⃣ 引用分析🔍 关于`垃圾收集器 GC`处理的介绍
2023-08-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录