【微服务】feign利用

打印 上一主题 下一主题

主题 553|帖子 553|积分 1659

【微服务】feign利用

  

  • 引入依赖
  • 启动类配置注解
  • 创建业务层
  • 利用项目调用
  • 大概会遇到的bug
  01 引入依赖

  

  • Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。
  • 在需要利用feign的springboot的pom.xml下配置依赖
  1. <!--fegin组件-->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-openfeign</artifactId>
  5. </dependency>
复制代码
02 springboot启动类配置注解

  

  • 在被远程调用接口的springboot项目启动类上加@EnableFeignClients注解
  1. @SpringBootApplication
  2. @EnableDiscoveryClient
  3. @EnableFeignClients(basePackages = "com.mashang.tsorder.demos.web.service")//开启Fegin,配置业务类扫描包
  4. public class xxxApplication {}
复制代码
03 创建业务层

  

  • 在业务层编写调用接口
  • @FeignClient(“ts-order”),这里写注册中的项目名(“ts-order”),我利用的注册中央是nacos,详细利用是这篇文章nacos的快速利用-CSDN博客
  • 注入控制层
  1. @FeignClient("ts-order")//这里写注册中的项目名
  2. public interface OrderFeignService {//service层的新建接口类
  3.    
  4.     //需要完整的路径,controller路径+orderTset接口路径
  5.     @GetMapping("/order/testOrder")
  6.     public String orderTset();
  7. }
复制代码
04 利用项目调用

  

  • 直接注入OrderFeignService即可正常利用
  1. @RestController
  2. @RequestMapping("/tsUser")
  3. public class TsUserController {
  4.     @Autowired
  5.     private OrderFeignService orderFeignService;
  6.     @GetMapping("/test")
  7.     public String test(){
  8.         String s = orderFeignService.orderTset();
  9.         return "test:"+s;
  10.     }
  11. }
复制代码
05 大概会遇到的bug

  1.com.netflix.client.ClientException

  

  • 请查抄配置中,这个bug意味着第三步创建业务层有问题,要么是@FeignClient(“ts-order”)和配置中央nacos不同,要么是这个项目没有在nacos中注册,查抄配置中央
  2.自动注入service失败

  

  • 请查抄TsUserController(利用)对应的springboot启动类配置注解,(basePackages = “com.mashang.tsorder.demos.web.service”)有问题,没有成功扫描到OrderFeignService类

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表