千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  Spring5的新特性有哪些?

Spring5的新特性有哪些?

来源:千锋教育
发布人:lxl
时间: 2023-05-05 10:45:22

 Spring5的新特性

一. Spring5框架新特性概述

  Spring5最令人兴奋的消息就是它提出了响应式的编程模型(Reactive Programming)。Spring5 框架同时兼容 Java8 和 JDK 9。提供了一种颠覆于传统WEB开发方式的编程风格。对于Spring5的升级,给大家罗列了以下方面:

  基于JDK8,兼容于JDK9。

  对Kotlin支持。

  响应式的编程风格。

  对函数式WEB框架的支持。

  对Junit5的支持。

  在这里文哥重点对响应式的编程风格和函数式的WEB框架支持给大家做一下介绍:

  响应式的编程风格

  响应式编程是Spring Framework 5.0最重要的更新之一。专注于构建对事件做出响应的WEB应用程序。Java8本身没有对响应式编程风格进行支持,但是一些其他的框架提供了对响应是编程风格的支持。文哥在这里给大家罗列一下:

  Reactive Streams:尝试定义与语言无关的响应性API。

  Reactor:Spring Pivotal团队提供的响应式编程的Java实现。

  Spring WebFlux:启用基于响应式编程的Web应用程序的开发。 提供类似于Spring MVC的编程模型。

  函数式Web框架

  除了响应式功能之外,Spring5 还提供了一个函数式Web框架。它提供了使用函数式编程风格来定义endpoints的功能。 该框架引入了两个基本组件:HandlerFunction 和 RouterFunction。HandlerFunction 表示处理接收到的请求并生成响应的函数。 RouterFunction 替代了 @RequestMapping 注解。它用于将接收到的请求路由到处理函数。对于响应式编程风格和函数式WEB框架的支持,由于我们没有给小伙伴们介绍SpringMVC的知识,所以这部分内容我们放在SpringMVC系列文章中给大家介绍。接下来文哥给大家介绍Spring5中的其他新特性。

  二. Spring5框架新特性

  Spring5整合日志框架

  Spring5本身提供了对日志封装的解决方案,官方建议我们使用Log4j2。接下来文哥就给大家演示Spring5对于日志框架的整合。

  第一步:引入相关的依赖 org.apache.logging.log4j log4j-api 2.11.2

  org.apache.logging.log4j log4j-core 2.11.2 org.apache.logging.log4j log4j-slf4j-impl 2.11.2 org.slf4j slf4j-api 1.7.30 第二步:创建日志配置文件 我们在项目里面创建日志文件,文件的名称叫log4j2.xml 第三步:测试日志整合是否生效 我们随便编写并运行一个测试类,查看控制台效果: ![](https://storage.qfedu.com/twxt/1681104301967.image.png)

  到这里我们Spring5整合Log4j2日志框架就成功了。

  2. @Nullable注解

  @Nullable注解是Spring5框架提供出来的一个新的注解。可以使用在方法上面,也可以应用到属性和参数上面,应用到方法上面表示方法返回可以为空,应用到属性上面表示属性值可以为空,应用到参数上面表示参数值可以为空。接下来文哥给大家演示一下注解的使用:

  (1) 应用到方法上面。

  我们可以查阅Spring的官方源码,在源码中关于@Nullable注解的使用地方有很多,在这里我们看看ApplicationContext的源码:

Spring5的新特性

  @Nullable注解修饰的getParent方法,说明这个方法的返回值是可以为NULL的。

  (2) 应用到方法形式参数里面。

  我们还是翻阅Spring的官方源码,这次我们查看AnnotationConfigApplicationContext类里面有一个注册bean的方法:

Spring5的新特性

  这意味着@Nullable注解修饰的beanName参数,外界在传值的时候可以传入为NULL。

  (3) 应用到属性上面

  我们还是翻阅Spring的官方源码,现在我们查看ClassPathXmlApplicationContext类。

  GenericApplicationContext 函数式风格的容器

  在Spring5里面,还支持使用函数式的风格创建对象,并将对象交给容器管理,现在文哥给大家简单演示一下:

 @Test

  public void testGenericApplicationContext() {

  //1 创建 GenericApplicationContext 对象

  GenericApplicationContext context = new GenericApplicationContext();

  //2 调用 context 的方法对象注册

  context.refresh();

  context.registerBean("account1", Account.class,() -> new Account(1002,"kobe",500.0));

  //3 获取在 spring 注册的对象

  Account user = (Account) context.getBean("account1");

  System.out.println(user);

  }

 

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

如何进行mysql数据备份?

2023-05-30

从零开始学Java之Java中的内部类是怎么回事?

2023-05-29

什么是事件流以及事件流的传播机制 ?

2023-05-29

最新文章NEW

什么是servlet的生命周期?servlet请求处理流程是怎样的?

2023-05-30

在java中,super关键字怎样使用

2023-05-29

什么是JavaScript伪数组?

2023-05-25

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>