spring boot2实战新特性

[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


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注