[toc]
为啥
进入新常态了,让自己忙一些好呀,这样就不用多想什么了,或许时间是最好的医生,我相信时间是最好的判断,可惜对错也与我无关了。
spring boot2
基于spring 5 ,平台为java 8+ ,现在java 9也可以使用了呀。
引入就直接改版本即可
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
使用spring.io构建时,在idea中可以选择spring boot的版本号建议2.0.0 而2.0.1在我写这篇文章时还在开发中
看到的下图就是2.0的与众不同之处了
在reactor的加持下实现了非阻塞异步响应spring webflux。
webflux 官方介绍
webflux
名称中的 Flux 来源于 Reactor 中的类 Flux。该模块中包含了对反应式 HTTP、服务器推送事件和 WebSocket 的客户端和服务器端的支持
@RestController
public class BaseCon {
@GetMapping("/hellow")
public Mono<String> sayHellow(){
return Mono.just("jia");
}
}
Mono和Flux
使用 Mono和Flux 进行数据的传输,两个都继承自publisher接口
- Mono ,是指最多只能触发(emit) (事件)一次。它对应于 RxJava 库的 Single 和 Maybe 类型或者是java的Optional。因此一个异步任务,如果只是想要在完成时给出完成信号,就可以使用 Mono
- Flux 相当于一个 RxJava Observable,能够发出 0~N 个数据项,然后(可选地)completing 或 erroring。处理多个数据项作为stream。
- 两者的关系:
但是Mono是相当于Flux的single()返回一个Mono;而连接多个Mono使用concatWith将产生一个Flux
参考:https://www.ibm.com/developerworks/cn/java/spring5-webflux-reactive/index.html
发表回复