Feign是简化Java HTTP客户端开发的工具(java-to-httpclient-binder),Feign的初衷是降低统一绑定Denominator到
HTTP API的复杂度,不区分是否为restful。 按照负载均衡执行。
a模块调取b模块,在a模块中进行设置
1.pom.xml 添加依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring‐cloud‐starter‐openfeign</artifactId> </dependency>
2. 启动类,添加注解
@EnableDiscoveryClient #发现服务 @EnableFeignClients #采用feign的方式发现服务
3.创建接口
@FeignClient(value="b模块在application中的name名称",fallback = UserClientImpl.class) public interface UserClient { @RequestMapping(value="/user/{id}", method = RequestMethod.GET) public Result findById(@PathVariable("id") String id); }
- @FeignClient注解用于指定从哪个服务中调用功能 ,注意 里面的名称与被调用的服务名保持一致,并且不能包含下划线。
- @RequestMapping注解用于对被调用的微服务进行地址映射。注意 @PathVariable注解一定要指定参数名称,否则出错。
4.controller编写
@Autowired private UserClient userClient; @RequestMapping(value = "/user/{userId}") public Result findLabelById(@PathVariable String userId){ Result result = userClient.findById(userId); return result; }