其他分享
首页 > 其他分享> > Spring 入门(3):Spring5 的新功能

Spring 入门(3):Spring5 的新功能

作者:互联网

日志封装

整个Spring5框架的代码基于Java8,运行时兼容JDK9

Spring 5.0 框架自带了通用的日志封装
(1)Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j2
(2)Spring5 框架整合 Log4j2

整合 Log4j2 的过程如下:

@Nullable注解:允许返回为空

@Nullable 注解 可以使用在方法上面,属性上面,参数上面

函数式分格的支持: GenericApplicationContext:

//函数式风格创建对象,交给spring进行管理 
@Test 
public void testGenericApplicationContext() {
	//1 创建GenericApplicationContext对象 GenericApplicationContext
	context = new GenericApplicationContext();
	//2 调用context的方法对象注册
	context.refresh();
	context.registerBean("user1",User.class,() -> new User());
	//3 获取在spring注册的对象
	// User user = (User)context.getBean("com.atguigu.spring5.test.User");
	User user = (User)context.getBean("user1");
	System.out.println(user);
}

Spring5支持整合JUnit5

(1)整合JUnit4

(2)Spring5整合JUnit5

Spring5 框架新功能 :SpringWebflux

SpringWebflux 是 Spring5 添加新的模块用于web开发

传统web框架,比如 SpringMVC,是基于 Servlet 容器的。

问题:异步同步于非阻塞阻塞的区别

答:他们所针对的对象时不一样的。

Webflux的特点以及与SpringMVC的异同

Webflux特点

比较 SpringMVC 的特点

响应式编程(Java实现)

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

使用迭代器是一种命令式编程,由开发者决定何时去访问数据序列中的下一个元素
在响应式流中,当新的可用元素出现时,由发布者通知订阅者,这种推送正是响应的关键

Java8及其之前版本

响应式编程(Reactor实现)

Publisher

(1) 响应式编程操作中,Reactor 是满足 Reactive 规范框架
(2) Reactor有两个核心类,Mono 和 Flux,这两个类实现接口 Publisher,提供丰富操作符。

其中:

在这里插入图片描述

创建序列

Flux

Mono

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

操作符

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

三种信号

Flux 和 Mono 都是数据流的发布者,使用 Flux 和 Mono 都可以发出三种数据信号: 元素值,错误信号,完成信号。错误信号和完成信号都代表终止信号

数据流与无限数据流:

SpringWebflux 执行流程和核心API

SpringWebflux 基于Reactor,默认使用容器是Netty

Netty

SpringWebflux执行过程

SpringWebflux执行过程其实和 SpringMVC 相似,也有一个核心控制器来完成执行操作。

在这里插入图片描述

SpringWebflux 实现函数式编程,两个接口:RouterFunction(路由处理)HandlerFunction(处理函数)

SpringWebflux(基于注解编程模型)实例

SpringWebflux 实现方式有两种:注解编程模型和函数式编程模型

⚫ 说明

SpringWebflux(基于函数式编程模型)实例

具体过程如下:

SpringWebflux 后面再来看,目前确实还没有弄太明白!!!!!!

标签:入门,Spring,编程,id,Flux,Mono,userService,public,Spring5
来源: https://blog.csdn.net/Mr_tianyanxiaobai/article/details/119147037