Spring Cloud学习笔记-008

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

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

2. 加入相关依赖:

Spring Cloud学习笔记-008

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

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

Spring Cloud学习笔记-008

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

Spring Cloud学习笔记-008

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

Spring Cloud学习笔记-008

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

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

Spring Cloud学习笔记-008

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

Spring Cloud学习笔记-008

10. 启动项目测试。

 

服务降级

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

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

Spring Cloud学习笔记-008

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

Spring Cloud学习笔记-008

3. 自行测试相应效果。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywjsj.html