发表于: 2019-12-05 20:28:40

1 1166


一、今天完成的事

修复了zuul不能转发的bug

困扰三天的bug,竟然是因为url不正确

zuul.routes.video.path=/video/**
zuul.routes.video.serviceId=SERVICE-VIDEO
zuul.routes.video.url=http://118.126.113.248:21024/video
#update by wangquan
zuul.routes.article.path=/article/**
zuul.routes.article.serviceId=service-article
zuul.routes.article.url=http://118.126.113.248:21023/article

video.path后面会拦截/video/**转发到zuul中,而在程序中,需要设置url为

/video/a/u/video

头部要和拦截的对应

就实现了转发

成功访问21022接口转发到21024

二、遇到的问题

解决了bug

三、收获

小课堂lambda

“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。

在 Java 里将普通的方法或函数像参数一样传值并不简单

Lambda 表达式它是推动 Java 8 发布的最重要新特性。

Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

使用 Lambda 表达式可以使代码变的更加简洁紧凑。

使用lambda表达式可以对一个借口进行简介的实现

lambda特性

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。

  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。

  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。

  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

public class Java8Test {

   public static void main(String args[]){
       Java8Test tester = new Java8Test();

       // 类型声明
       MathOperation addition = (int a, int b) -> a + b;

       // 不用类型声明
       MathOperation subtraction = (a, b) -> a - b;

       // 大括号中的返回语句
       MathOperation multiplication = (int a, int b) -> { return a * b; };

       // 没有大括号及返回语句
       MathOperation division = (int a, int b) -> a / b;

       System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
       System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));
       System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication));
       System.out.println("10 / 5 = " + tester.operate(10, 5, division));

       // 不用括号
       GreetingService greetService1 = message ->
               System.out.println("Hello " + message);

       // 用括号
       GreetingService greetService2 = (message) ->
               System.out.println("Hello " + message);

       greetService1.sayMessage("Runoob");
       greetService2.sayMessage("Google");
   }

   interface MathOperation {
       int operation(int a, int b);
   }

   interface GreetingService {
       void sayMessage(String message);
   }

   private int operate(int a, int b, MathOperation mathOperation){
       return mathOperation.operation(a, b);
   }
}

运行之后

四、明天的计划

继续复盘



返回列表 返回列表
评论

    分享到