zoukankan      html  css  js  c++  java
  • Spring Cloud学习笔记-008

    继承特性

      通过上节的示例实践,当使用Spring MVC的注解来绑定服务接口时,几乎完全可以从服务提供方的Controller中依靠复制操作,构建出相应的服务客户端绑定接口。既然存在这么多复制操作,自然需要考虑这部分内容是否可以得到进一步的抽象。在Spring Cloud Feign中,针对该问题提供了继承特性来帮助我们解决这些复制操作,以进一步减少编码量。

    1. 为了能够复用接口定义,先创建一个基础的Maven工程,骨架选择quickstart,工程名为demo-service-api。

    2. 加入相关依赖:

    3. 将上节中User类复制到本项目com.skyer.vo包中。

    4. 创建com.skyer.service.MemberService2接口:

    5. 接下来对demo-member进行重构,在pom.xml的dependency节点中,新增对demo-service-api的依赖:

    6. 在demo-member中创建RefactorMemberController类实现demo-service-api中定义的MemberService2接口,并参考之前的MemberController来实现这三个接口:

    7. 接下来在服务消费者demo-customer-feign的pom.xml文件中,新增对demo-service-api的依赖(同demo-member一样)。

    8. 在demo-customer-feign中创建RefactorMemberService接口,并继承demo-service-api包中的MemberService2接口,然后添加@FeignClient注解来绑定服务。

    9. 最后,在MemberController中,注入RefactorMemberService的实例,并新增一个请求/getMember3来触发对RefactorMemberService的实例的调用:

    10. 启动项目测试。

    服务降级

      服务降级逻辑的实现只需要为Feign客户端的定义接口编写一个具体的接口实现类,其中每个重写方法的实现逻辑都可以用来定义相应的服务降级逻辑。

    1. 定义MemberServiceFallback降级类,实现MemberService接口:

    2. 在服务绑定接口RefactorMemberService中,通过@FeignClient注解的fallback属性来指定对应的服务降级实现类:

    3. 自行测试相应效果。

  • 相关阅读:
    springboot maven打包插件
    maven打包指定main入口插件
    团队开发环境一致性性要求
    springboot 在idea中实现热部署
    IDEA 2018.1可用License服务(持续更新)
    IDEA打jar包
    3月18号
    3月17号
    3月16号
    3月13号
  • 原文地址:https://www.cnblogs.com/Oven5217/p/8845883.html
Copyright © 2011-2022 走看看