美文网首页
Spring5新特性

Spring5新特性

作者: Margolu | 来源:发表于2020-10-30 16:38 被阅读0次

    1.整个框架代码基于java8,兼容jdk9

    2.Spring5.0框架自带了通用的日志封装

    (1)Spring5移除了Log4jConfigListener,官方建议使用Log4j2

    (2)Spring5框架整合Log4j2

    第一步:引入jar包

    第二步:创建log4j2.xml,文件名字固定

    日志级别以及优先级排序

    OFF>fatal>error>warn>info>debug>trace>all

    3.核心容器支持@Nullable注解

    @Nullable注解可以使用在方法上面,属性,参数,表示方法返回可以为空,属性可以为空,参数值可以为空。

    4.核心容器支持函数式风格GenericApplicationContext.

    函数式风格创建对象,交给Spring进行管理。

    5.支持整合Junit5

    (1)支持Junit4

    引入相关依赖

    Spring整合Junit5

    第一步引入jar包

    创建测试类,使用注解

    使用一个复合注解替代上面两个注解完成整合

    Spring5框架新功能(Webflux)

    (1)是Spring5添加的新的模块,用于web开发,功能和SpringMVC类似,webflux使用当前一种比较流程响应式编程出现的框架。

    (2)传统web框架,比如SpringMVC,这些基于Servlet容器,webflux是一种异步非阻塞的框架,异步非阻塞框架在Servlet3.1以后才支持,核心是基于Reactor的相关API实现的。

    什么是异步非阻塞

    异步和同步针对调用者,调用者发送请求,如果等着对方回应之后才去做其他事情就是同步,如果发送请求之后不用等着对方回应就去做其他事情就是异步。

    阻塞和非阻塞针对被调用者,被调用者收到请求后,做完请求任务之后才给出反馈就是阻塞,收到请求之后马上给出反馈然后再去做事情就是非阻塞。

    webflux特点

    (1)异步非阻塞 在有限的资源下提高系统吞吐量和伸缩性。以Reactor为基础实现响应式编程。

    (2)函数式编程,Spring5框架基于java8,webflux使用Java8函数式编程方式实现路由请求。

    SpringMVC和webflux

    (1)这两个框架都可以使用注解方式,都运行在tomcat等容器中

    (2)SpringMVC采用命令式编程,webflux采用异步响应式编程

    响应式编程

    什么是响应式编程

    响应式编程是面向数据流和变化传播的编程范式,这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。

    电子表格程序就是响应式编程的一个例子,单元格可以包含字面值或类似“=B1+C1”的公式,而包含公式的单元格的值会依据其他单元格的值变化而变化。

    Java8及其之前版本

    提供的观察者模式两个类Observer和Observable

    3.响应式编程(Reactor实现)

    响应式编程操作中,Reactor是满足Reactive规范框架

    Reactor有两个核心类,Mono和Flux.这两个类实现接口Publisher,提供丰富操作符。Flux对象实现发布者,返回N个元素;Mono实现凡发布者,返回0个或1个元素

    (3)Flux和Mono都是数据流的发布者,使用Flux和Mono都可以发出三种数据信号:元素值,错误信号,完成信号。错误信号和终止信号都代表终止信号,终止信号用于告诉订阅者信息流结束了,错误信号告诉订阅者数据流终止并且汇报错误信息。

    4.代码演示flux和Mono

    第一步引入依赖

    三种信号特点

    错误信号和终止信号不能共存

    如果没有发送任何元素,而是直接发送错误或者完成信号,表示是空数据流

    调用just或者其他方法只是声明数据流,数据流并没有发出

    操作符:对数据流进行一道道操作,成为操作符,比如工厂流水线。

    第一 map元素映射为新元素

    第二 flatMap元素映射为流。

    把每个元素转换为流,把转换后多个流合成一个输出

    4.SpringWebflux执行流程和核心API

    SpringWebflux基于Reactor,默认使用容器是Nety,Nety是高性能的NIO框架,异步非阻塞的框架

    SpringWebflux执行过程和SpringMVC相似

    SpringWebflux核心控制器

    相关文章

      网友评论

          本文标题:Spring5新特性

          本文链接:https://www.haomeiwen.com/subject/zgbrvktx.html