// 服务调用 Netflix Feign
// 基本概念
// Feign 是 Netflix开发的声明式 模板化的HTTP客户端
// Feign 可以帮助我们 更快捷 优雅的 调用HTTP api
// Feign 支持多种注解
// Spring Cloud 对 Feign 进行了增强 , 使Feign支持了Spring MVC注解
// Spring Cloud Feign 是基于 Netflix Feign 实现的 整合了Spring Cloud Ribbon(负载均衡)和Spring Cloud Hystrix(熔断器)
// Spring Cloud Feign 帮助我们定义和实现依赖服务接口的定义
// 在 Spring Cloud Feign 的实现下 只需要创建一个接口并用注解方式配置他
// 即可完成服务提供方的接口绑定
// 前提条件: 把相互调用的服务在 Nacos 注册
// 1. 引入相关依赖 在服务的 总模块下
// <!--服务调用-->
// <dependency>
// <groupId>org.springframework.cloud</groupId>
// <artifactId>spring-cloud-starter-openfeign</artifactId>
// </dependency>
//2. 在调用端(消费者)启动类 添加一个注解 @EnableFeignClients // 服务调用 注解
// 注册中心
// 消费者 生产者
//比如 你有 a b 两个模块 a 模块 需要调用 b模块 的接口
// 就需要在a 模块的启动类上加上 这个注解
//3. 在 调用端 编写调用代码 固定结构
// 创建 interface 使用注解指定调用服务名称
// 定义调用的方法路径
// 固定结构
// @FeignClient("service-oss") //加入你要调用的服务的名称 在nacos服务列表中可以复制
// @Component //交给Spring管理
// public interface OssClient {
//
// //测试分布式方法调用
// // 复制你需要用的模块下的控制器里的 方法 加 路径注解 比如 post 你就 @PostMapping 注解
// // 如果使用的是@PathVariable 这个来传参的话 一定要加参数名称 否则会出错 例:@PathVariable("testId",String testId)
// // 路径 需要写完整路径
// @PostMapping("/oss/addTest")
// public R addTest(@RequestBody TestRequest testRequest);
//
// //后续再用方法 往这里面添加 即可
// }
//4. 实现分布式模块调用
//4.1 //注入其他模块方法调用的 接口
// @Autowired
// private OssClient ossClient;
//4.2 //测试调用其他模块方法
// ossClient.addTest(testRequest);
//5. 重启服务 测试 方法
以下开始测试
引入依赖
b模块下创建一个方法
a模块下尝试调用b模块下的方法
入口文件 加入注解
创建一个调用b模块的接口类
编写代码结构一般都是以下格式
服务的名称 可以去Nacos里查找 或者在配置文件中查找
在A模块某个类中 写调用b模块的方法