不可变集合
不可变集合例子:
1 | ImmutableSet<String> FRUITS = ImmutableSet.of("apple", "watermelon", "cherry", "mango"); |
将抛出java.lang.UnsupportedOperationException
异常:
FEBS-Vue为FEBS-Shiro的前后端分离版本,前端使用Vue全家桶,组件库采用Ant-Design-Vue。
文档里介绍的示例是在Windows10操作系统下完成的,后端编辑器使用IDEA,前端编辑器使用WebStorm。
在 Spring Boot 2.0 WebFlux编程 一节我们大致了解了WebFlux的用法,这节我们将结合Mongo DB在WebFlux的架构下实现增删改查样例。和 Spring Boot整合Mongo DB 不同的是,我们使用的是Reactive Mongo DB依赖,所有增删改查方法返回值类型为Flux或者Mono。
Consul是一款由HashiCorp公司开源的,用于服务治理的软件,Spring Cloud Consul对其进行了封装。Consul具有如下特点:
服务注册 - 自动注册和取消注册服务实例的网络位置
运行状况检查 - 检测服务实例何时启动并运行
分布式配置 - 确保所有服务实例使用相同的配置
Kafka是一个分布式的、可分区的、可复制的消息系统,下面是Kafka的几个基本术语:
Kafka将消息以topic为单位进行归纳;
将向Kafka topic发布消息的程序成为producers;
将预订topics并消费消息的程序成为consumer;
Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker。
Spring MVC Web架构是基于阻塞式Servlet API构建的。Servlet 3.1后提供了非阻塞API,Spring 5.0后基于这些API构建了一套全新的非阻塞Web框架 —— WebFlux。Spring Boot 2.0基于Spring 5.0构建,所以要在Spring Boot中使用WebFlux架构,版本必须大于2.0。
通过下面这张图了解下Spring MVC和Spring WebFlux的区别:
这节我们将整合Spring Boot与Mongo DB实现增删改查的功能,并且实现序列递增。Mongo DB下载地址:https://www.mongodb.com/download-center/community。Mongo DB的基本介绍和增删改查的用法可以参考我之前的文章: MongoDB shell 、 MongoDB文档CUD 和 MongoDB 文档查询 。
响应式编程(Reactive Programming)可以理解为一种处理数据项(Data Item)的异步流,即在数据项产生的时候,接收者就对其进行响应。在响应式编程中,会有一个数据发布者(Publisher)和数据订阅者(Subscriber),后者用于异步接收发布者发布的数据。在该模式中,还引入了一个更高级的特性:数据处理器(Processor),它用于将数据发布者发布的数据进行某些转换操作,然后再发布给数据订阅者。
总之,响应式编程是异步非阻塞编程,能够提升程序性能,可以解决传统编程模型遇到的困境。基于这个模型实现的有Java 9 Flow API、RxJava和Reactor等,这里主要介绍的是Java 9 Flow API的使用。