集成feign有两种方式.
1.集成到所需项目中(只有该项目可以用)直接引用所需调用的项目
2.集成到公共项目(通用)
1.集成到所需项目中(只有该项目可以用)
再需要消费的服务 进行依赖的引用
1.引入依赖,openfeign,和所需调用的服务
<!--feign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>com.lin</groupId><artifactId>user-Service</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
2.启动类加注解 @EnableFeignClients //开启Feign的功能
@EnableFeignClients //开启Feign的功能
@SpringBootApplication
public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);}
}
3.新建接口类 引入所需接口 @FeignClient(name = “userService”)
** 1. 定义接口* 2. 接口上添加注解 @FeignClient,设置value属性为 服务提供者的 应用名称* 3. 编写调用接口,接口的声明规则 和 提供方接口保持一致。* 4. 注入该接口对象,调用接口方法完成远程调用*/
@FeignClient(name = "userService")//这里一定要和nacos注册的服务名一样.不然会报错
public interface TestFeignClient {@GetMapping("/order/config")//接口的全路径public String getConfig();
}
报错信息:
Load balancer does not have available server for client: userservice
4.注入feign接口,调用
@Resourceprivate TestFeignClient testFeignClient;@Value("${app.message}")private String message;@GetMapping("/config")public String getConfig() {String config = testFeignClient.getConfig();远程调用System.out.println("config = " + config);return message;}