下载资源后端资源详情
reactor-programming-master.zip
大小:63.73KB
价格:10积分
下载量:0
评分:
5.0
上传者:dongzixuan1
更新日期:2024-07-13

reactor demo

资源文件列表(大概)

文件名
大小
reactor-programming-master/
-
reactor-programming-master/.gitignore
16B
reactor-programming-master/chapter01-stream/
-
reactor-programming-master/chapter01-stream/pom.xml
961B
reactor-programming-master/chapter01-stream/src/
-
reactor-programming-master/chapter01-stream/src/main/
-
reactor-programming-master/chapter01-stream/src/main/java/
-
reactor-programming-master/chapter01-stream/src/main/java/com/
-
reactor-programming-master/chapter01-stream/src/main/java/com/atguigu/
-
reactor-programming-master/chapter01-stream/src/main/java/com/atguigu/flow/
-
reactor-programming-master/chapter01-stream/src/main/java/com/atguigu/flow/FlowDemo.java
4.53KB
reactor-programming-master/chapter01-stream/src/main/java/com/atguigu/lambda/
-
reactor-programming-master/chapter01-stream/src/main/java/com/atguigu/lambda/FunctionDemo.java
1.85KB
reactor-programming-master/chapter01-stream/src/main/java/com/atguigu/lambda/Lambda.java
4.53KB
reactor-programming-master/chapter01-stream/src/main/java/com/atguigu/lambda/StreamDemo.java
8.25KB
reactor-programming-master/chapter02-reactor/
-
reactor-programming-master/chapter02-reactor/pom.xml
1.66KB
reactor-programming-master/chapter02-reactor/src/
-
reactor-programming-master/chapter02-reactor/src/main/
-
reactor-programming-master/chapter02-reactor/src/main/java/
-
reactor-programming-master/chapter02-reactor/src/main/java/com/
-
reactor-programming-master/chapter02-reactor/src/main/java/com/atguigu/
-
reactor-programming-master/chapter02-reactor/src/main/java/com/atguigu/reactor/
-
reactor-programming-master/chapter02-reactor/src/main/java/com/atguigu/reactor/FluxDemo.java
6.76KB
reactor-programming-master/chapter02-reactor/src/test/
-
reactor-programming-master/chapter02-reactor/src/test/java/
-
reactor-programming-master/chapter02-reactor/src/test/java/com/
-
reactor-programming-master/chapter02-reactor/src/test/java/com/atguigu/
-
reactor-programming-master/chapter02-reactor/src/test/java/com/atguigu/reactor/
-
reactor-programming-master/chapter02-reactor/src/test/java/com/atguigu/reactor/APITest.java
14.47KB
reactor-programming-master/chapter03-webflux/
-
reactor-programming-master/chapter03-webflux/pom.xml
951B
reactor-programming-master/chapter03-webflux/src/
-
reactor-programming-master/chapter03-webflux/src/main/
-
reactor-programming-master/chapter03-webflux/src/main/java/
-
reactor-programming-master/chapter03-webflux/src/main/java/com/
-
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/
-
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/
-
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/FluxMainApplication.java
2.58KB
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/WebFluxMainApplication.java
705B
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/config/
-
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/config/MyWebConfiguration.java
823B
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/controller/
-
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/controller/HelloController.java
3.48KB
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/exception/
-
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/exception/GlobalExceptionHandler.java
866B
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/filter/
-
reactor-programming-master/chapter03-webflux/src/main/java/com/atguigu/webflux/filter/MyWebFilter.java
1.37KB
reactor-programming-master/chapter03-webflux/src/main/resources/
-
reactor-programming-master/chapter03-webflux/src/main/resources/static/
-
reactor-programming-master/chapter03-webflux/src/main/resources/static/index.html
1.12KB
reactor-programming-master/chapter04-r2dbc/
-
reactor-programming-master/chapter04-r2dbc/pom.xml
1.75KB
reactor-programming-master/chapter04-r2dbc/src/
-
reactor-programming-master/chapter04-r2dbc/src/main/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/R2DBCMainApplication.java
1.26KB
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/config/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/config/R2DbcConfiguration.java
1008B
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/config/converter/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/config/converter/BookConverter.java
1.6KB
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/controller/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/controller/AuthorController.java
456B
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/entity/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/entity/TAuthor.java
677B
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/entity/TBook.java
565B
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/entity/TBookAuthor.java
544B
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/repositories/
-
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/repositories/AuthorRepositories.java
1.12KB
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/repositories/BookAuthorRepostory.java
836B
reactor-programming-master/chapter04-r2dbc/src/main/java/com/atguigu/r2dbc/repositories/BookRepostory.java
783B
reactor-programming-master/chapter04-r2dbc/src/main/resources/
-
reactor-programming-master/chapter04-r2dbc/src/main/resources/application.yaml
171B
reactor-programming-master/chapter04-r2dbc/src/test/
-
reactor-programming-master/chapter04-r2dbc/src/test/java/
-
reactor-programming-master/chapter04-r2dbc/src/test/java/com/
-
reactor-programming-master/chapter04-r2dbc/src/test/java/com/atguigu/
-
reactor-programming-master/chapter04-r2dbc/src/test/java/com/atguigu/r2dbc/
-
reactor-programming-master/chapter04-r2dbc/src/test/java/com/atguigu/r2dbc/R2DBCTest.java
11.42KB
reactor-programming-master/chapter05-security/
-
reactor-programming-master/chapter05-security/pom.xml
1.91KB
reactor-programming-master/chapter05-security/src/
-
reactor-programming-master/chapter05-security/src/main/
-
reactor-programming-master/chapter05-security/src/main/java/
-
reactor-programming-master/chapter05-security/src/main/java/com/
-
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/
-
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/
-
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/SecurityDemoMainApplicatioin.java
901B
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/component/
-
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/component/AppReactiveUserDetailsService.java
2.8KB
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/config/
-
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/config/AppR2DBCConfiguration.java
328B
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/config/AppSecurityConfiguration.java
3.2KB
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/controller/
-
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/controller/HelloController.java
779B
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/entity/
-
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/entity/TPerm.java
493B
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/entity/TRolePerm.java
468B
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/entity/TRoles.java
461B
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/entity/TUser.java
521B
reactor-programming-master/chapter05-security/src/main/java/com/atguigu/security/entity/TUserRole.java
467B
reactor-programming-master/chapter05-security/src/main/resources/
-
reactor-programming-master/chapter05-security/src/main/resources/application.yaml
285B
reactor-programming-master/chapter05-security/src/main/resources/static/
-
reactor-programming-master/chapter05-security/src/main/resources/static/js/
-
reactor-programming-master/chapter05-security/src/main/resources/static/js/hello.js
11B
reactor-programming-master/chapter05-security/src/test/
-
reactor-programming-master/chapter05-security/src/test/java/
-
reactor-programming-master/chapter05-security/src/test/java/com/
-
reactor-programming-master/chapter05-security/src/test/java/com/atguigu/
-
reactor-programming-master/chapter05-security/src/test/java/com/atguigu/security/
-
reactor-programming-master/chapter05-security/src/test/java/com/atguigu/security/PasswordTest.java
726B
reactor-programming-master/chapter05-security/src/test/java/com/atguigu/test/
-
reactor-programming-master/chapter05-security/src/test/java/com/atguigu/test/PasswordTest.java
195B
reactor-programming-master/pom.xml
1.08KB

资源内容介绍

reactor demo
package com.atguigu.reactor;import org.junit.jupiter.api.Test;import reactor.core.publisher.Flux;import reactor.core.publisher.Mono;import reactor.core.publisher.Sinks;import reactor.core.scheduler.Schedulers;import reactor.util.context.Context;import java.io.IOException;import java.time.Duration;import java.util.List;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.atomic.AtomicInteger;import java.util.stream.Stream;/** * @author lfy * @Description * @create 2023-11-30 20:07 */public class APITest { @Test void next(){ Integer block = Flux.just(1, 2, 3) .next() .block(); System.out.println(block); } //Context-API: https://projectreactor.io/docs/core/release/reference/#context @Test //ThreadLocal在响应式编程中无法使用。 //响应式中,数据流期间共享数据,Context API: Context:读写 ContextView:只读; void threadlocal(){ //支持Context的中间操作 Flux.just(1,2,3) .transformDeferredContextual((flux,context)->{ System.out.println("flux = " + flux); System.out.println("context = " + context); return flux.map(i->i+"==>"+context.get("prefix")); }) //上游能拿到下游的最近一次数据 .contextWrite(Context.of("prefix","哈哈")) //ThreadLocal共享了数据,上游的所有人能看到; Context由下游传播给上游 .subscribe(v-> System.out.println("v = " + v)); //以前 命令式编程// controller -- service -- dao //响应式编程 dao(10:数据源) --> service(10) --> controller(10); 从下游反向传播 } @Test void paralleFlux() throws IOException { // 百万数据,8个线程,每个线程处理100,进行分批处理一直处理结束 Flux.range(1,1000000) .buffer(100) .parallel(8) .runOn(Schedulers.newParallel("yy")) .log() .flatMap(list->Flux.fromIterable(list)) .collectSortedList(Integer::compareTo) .subscribe(v-> System.out.println("v = " + v)); System.in.read(); } @Test void block(){//// Integer integer = Flux.just(1, 2, 4)// .map(i -> i + 10)// .blockLast();// System.out.println(integer); List<Integer> integers = Flux.just(1, 2, 4) .map(i -> i + 10) .collectList() .block(); // 也是一种订阅者; BlockingMonoSubscriber System.out.println("integers = " + integers); } @Test void sinks() throws InterruptedException, IOException {// Flux.create(fluxSink -> {// fluxSink.next("111")// })// Sinks.many(); //发送Flux数据。// Sinks.one(); //发送Mono数据 // Sinks: 接受器,数据管道,所有数据顺着这个管道往下走的 //Sinks.many().unicast(); //单播: 这个管道只能绑定单个订阅者(消费者) //Sinks.many().multicast();//多播: 这个管道能绑定多个订阅者 //Sinks.many().replay();//重放: 这个管道能重放元素。 是否给后来的订阅者把之前的元素依然发给它; // 从头消费还是从订阅的那一刻消费;// Sinks.Many<Object> many = Sinks.many()// .multicast() //多播// .onBackpressureBuffer(); //背压队列 //默认订阅者,从订阅的那一刻开始接元素 //发布者数据重放; 底层利用队列进行缓存之前数据// Sinks.Many<Object> many = Sinks.many().replay().limit(3);//// new Thread(()->{// for (int i = 0; i < 10; i++) {// many.tryEmitNext("a-"+i);// try {// Thread.sleep(1000);// } catch (InterruptedException e) {// throw new RuntimeException(e);// }// }// }).start();//////// //订阅// many.asFlux().subscribe(v-> System.out.println("v1 = " + v));//// new Thread(()->{// try {// Thread.sleep(5000);// } catch (InterruptedException e) {// throw new RuntimeException(e);// }// many.asFlux().subscribe(v-> System.out.println("v2 = " + v));// }).start(); Flux<Integer> cache = Flux.range(1, 10) .delayElements(Duration.ofSeconds(1)) //不调缓存默认就是缓存所有 .cache(1); //缓存两个元素; 默认全部缓存 cache.subscribe();//缓存元素; // 最定义订阅者 new Thread(()->{ try { Thread.sleep(5000); } catch (InterruptedException e) { throw new RuntimeException(e); } cache.subscribe(v-> System.out.println("v = " + v)); }).start(); System.in.read(); } @Test void retryAndTimeout() throws IOException { Flux.just(1) .delayElements(Duration.ofSeconds(3)) .log() .timeout(Duration.ofSeconds(2)) .retry(2) // 把流从头到尾重新请求一次 .onErrorReturn(2) .map(i-> i+"haha") .subscribe(v-> System.out.println("v = " + v)); System.in.read(); } void createOrder() { //1、校验订单;价格有问题; // 只需要敲正确的业务代码,所有的业务异常,全部抛出我们自定义异常,由全局异常处理器进行统一处理// throw new GmallException(ResultCodeEnum.ORDER_PRICE_INVAILID); } // 默认:错误是一种中断行为; // subscribe: 消费者可以感知 正常元素try 与 流发生的错误catch ; // 更多的错误处理: // java 错误处理 @Test void error() throws IOException {// Flux.just(1, 2, 0, 4)// .map(i -> "100 / " + i + " = " + (100 / i))// .onErrorReturn(NullPointerException.class,"哈哈-6666")// .subscribe(v-> System.out.println("v = " + v),// err -> System.out.println("err = " + err),// ()-> System.out.println("流结束")); // error handling example//// Flux.just(1, 2, 0, 4)// .map(i -> "100 / " + i + " = " + (100 / i))// .onErrorResume(err -> hahaha(err))// .subscribe(v -> System.out.println("v = " + v),// err -> System.out.println("err = " + err),// () -> System.out.println("流结束"));// Flux.just(1, 2, 0, 4)// .map(i -> "100 / " + i + " = " + (100 / i))// .onErrorResume(err -> Flux.error(new BusinessException(err.getMessage()+":炸了")))// Flux.just(1, 2, 0, 4)// .map(i -> "100 / " + i + " = " + (100 / i))// .onErrorMap(err-> new BusinessException(err.getMessage()+": 又炸了..."))// .subscribe(v -> System.out.println("v = " + v),// err -> System.out.println("err = " + err),// () -> System.out.println("流结束"));// Flux.just(1, 2, 3, 4)// .map(i -> "100 / " + i + " = " + (100 / i))// .doOnError(err -> {// System.out.println("err已被记录 = " + err);// })// .doFinally(signalType -> {// System.out.println("流信号:"+signalType);// })// .subscribe(v -> System.out.println("v = " + v),//

用户评论 (0)

发表评论

captcha