整合日志框架
1、整个Spring框架代码基于java8实现,运行时兼容JDK9,删除了很多不建议使用的类和方法
2、spring5.0框架自带了通用的日志封装
(1)spring5已经移除了Log4jConfigListener,官方建议使用log4j2
(2)spring5框架整合log4j2
第一步整合相关的jar包
第二步创建Log4j2.xml配置文件
支持@Nullable注解和函数式注册对象
1、@Nullable注解可以使用在方法、注解、参数上面,方法返回可以为空,属性值可以为空,参数值可以为空
4、Spring 核心容器支持函数式风格
Spring5支持整合Junit5
1、整合Junit4
第一步 引入Spring相关依赖
第二步创建测试类
Spring5整合Junit5
1、引入依赖
2、创建测试类,使用注解完成
3、使用一个符合注解替代上述的两个注解功能
SPringWebFlux
1、SpringWebflux介绍
(1)、是Spring5添加的心模块,用于web开阿发,功能SpringMVC类似的,Webflux使用当前一种比较流行的响应式编程出现的框架
(2)、使用传统的Web框架,比如SpringMVC ,这些基于Serblet容器,Webflux是一直异步非阻塞的框架,异步非阻塞的框架在Servlet3.1以后才支持的,核心基于Reacter的相关API实现的。
异步非阻塞:
异步和同步:针对调用者,调用者发送请求,等着对方回应后才向下执行,即同步,反之,为异步
非阻塞和阻塞:针对非调用者,被调用者收到请求后,做出请求任务之后才给出反馈就是阻塞,收到请求后,马上给出反馈然后再去做事情就是非阻塞。
都是针对对象不一样
(3)、webflux特点:非阻塞式、提高系统吞吐量和伸缩性,以Reactor为基础实现响应式编程;函数式编程,spring5框架基于java8,通过函数式编程实现路由请求
两个框架度可以使用注解方式,也能运行在tomcat容器中
SpringMVC采用命令式 编程,WebFlux采用响应式编程
响应式编程
jav8及其版本
提供的观察者模式两个类Observer和Observable
响应式编程(Reactor实现)
Fluxh和Mono都是数据流的发布者,使用Flux和Mono都可以发出三种数据信号:元素值,错误信号,完成信号,错误信号和完成信号都代表终止信号,终止信号告诉订阅者数据流结束了,错误信号终止数据流同时吧错误信息传递给订阅者
SpringWebflux执行流程和核心API
它是基于Reactor,默认使用容器是Netty,Netty是高性能的NIO(异步非阻塞)框架
SpringWebflux核心控制器DispatchHandler,实现接口WebHandler
SpringWebflux里面的DispatcherHandler负责请求的处理
SpringWebflux实现函数式编程的两个接口:RoutherFunction(路由函数) HandlerFuction(处理函数)
SpringWebflux(基于注解)
1、创建SpringBoot工程,引入依赖
2、配置启动端口号
3、创建相关的包和启动类
SpringWebflux(基于函数式编程)
1、需要自己初始化服务器
2、核心接口:
(实现路由功能) RouterFuction:转发对应的handler
(处理请生成相应的函数)HandlerFUction