为了账号安全,请及时绑定邮箱和手机立即绑定

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

课程名称: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

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消