继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第13天 SpringCloud Gateway 微服务网关

两只角的蜗牛
关注TA
已关注
手记 25
粉丝 2
获赞 4

课程名称:Spring Cloud / Alibaba 微服务架构实战

课程章节:第7章-SpringCloud Gateway 微服务网关

课程讲师:张勤一

课程内容:

1. Spring Cloud GateWay 的核心概念

1.1 认识Spring Cloud GateWay

  • GateWay的三大组成部件

图片描述

1.2 Spring Cloud GateWay的工作模型

图片描述

1.3 Predicate 断言(谓词)的介绍

图片描述

package com.imooc.ecommerce.service;import lombok.extern.slf4j.Slf4j;  
import org.junit.Test;  
import org.junit.runner.RunWith;  
import org.springframework.boot.test.context.SpringBootTest;  
import org.springframework.test.context.junit4.SpringRunner;import java.util.Arrays;  
import java.util.List;  
import java.util.function.Predicate;  
​  
​  
/***  
 * Java8 Predicate使用方法与思想  
 */  
@Slf4j  
@SpringBootTest  
@RunWith(SpringRunner.class)  
public class PredicateTest {public static List<String> MICRO_SERVICE = Arrays.asList("nacos", "authority", "gateway", "ribbon", "feign", "hystrix");/**  
 * test() 用户判断集合中的内容是否符合参数条件  
 */  
 @Test  
 public void testPredicate_test(){  
 Predicate<String> letterLengthLimit = s -> s.length() > 5;  
 MICRO_SERVICE.stream().filter(letterLengthLimit).forEach(System.out::println);  
 }/**  
 * 逻辑与 &&, 存在短路特性。  
 */  
 @Test  
 public void testPredicate_and(){  
 Predicate<String> letterLengthLimit = s -> s.length() > 5;  
 Predicate<String> letterStartWith = s -> s.startsWith("gate");  
 MICRO_SERVICE.stream().filter(letterLengthLimit.and(letterStartWith)).forEach(System.out::println);  
 }  
​  
​  
 /**  
 * 等价于逻辑或 ||  
 */  
 @Test  
 public void testPredicate_or(){  
 Predicate<String> letterLengthLimit = s -> s.length() > 5;  
 Predicate<String> letterStartWith = s -> s.startsWith("gate");  
 MICRO_SERVICE.stream().filter(letterLengthLimit.or(letterStartWith)).forEach(System.out::println);  
 }  
​  
​  
 /**  
 * 等同于逻辑非 !  
 */  
 @Test  
 public void testPredicate_negate(){  
 Predicate<String> letterLengthLimit = s -> s.startsWith("gate");  
 MICRO_SERVICE.stream().filter(letterLengthLimit.negate()).forEach(System.out::println);  
 }/**  
 * 类似于equals() ,区别:isEqual先判断对象是否为 Null,  
 * 不为null,再使用equals进行比较  
 */  
 @Test  
 public void testPredicate_isEqual(){  
 Predicate<String> equalsGateWay = s -> Predicate.isEqual("gateway").test(s);  
 MICRO_SERVICE.stream().filter(equalsGateWay).forEach(System.out::println);  
 }}

视频截图:450词

img

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP