【九月打卡】第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词
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦