【微服务】feign利用
- 引入依赖
- 启动类配置注解
- 创建业务层
- 利用项目调用
- 大概会遇到的bug
01 引入依赖
- Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。
- 在需要利用feign的springboot的pom.xml下配置依赖
- <!--fegin组件-->
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-openfeign</artifactId>
- </dependency>
复制代码 02 springboot启动类配置注解
- 在被远程调用接口的springboot项目启动类上加@EnableFeignClients注解
- @SpringBootApplication
- @EnableDiscoveryClient
- @EnableFeignClients(basePackages = "com.mashang.tsorder.demos.web.service")//开启Fegin,配置业务类扫描包
- public class xxxApplication {}
复制代码 03 创建业务层
- 在业务层编写调用接口
- @FeignClient(“ts-order”),这里写注册中的项目名(“ts-order”),我利用的注册中央是nacos,详细利用是这篇文章nacos的快速利用-CSDN博客
- 注入控制层
- @FeignClient("ts-order")//这里写注册中的项目名
- public interface OrderFeignService {//service层的新建接口类
-
- //需要完整的路径,controller路径+orderTset接口路径
- @GetMapping("/order/testOrder")
- public String orderTset();
- }
复制代码 04 利用项目调用
- 直接注入OrderFeignService即可正常利用
- @RestController
- @RequestMapping("/tsUser")
- public class TsUserController {
- @Autowired
- private OrderFeignService orderFeignService;
- @GetMapping("/test")
- public String test(){
- String s = orderFeignService.orderTset();
- return "test:"+s;
- }
- }
复制代码 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企服之家,中国第一个企服评测及商务社交产业平台。 |