Feign用于一个微服务子系统调用另一个微服务子系统的接口,本质就是http请求。但是我们的微服务都是受保护的,没有合法的令牌是无法获取到数据的,并且Fein默认并不会帮我们传递令牌。 综于上述原因,这里有必要提及下当前系统中Feign的使用方式。 假如现在需要在febs-server-test系统中调用febs-server-system系统中的/user/list接口数据,我们需要在febs-server-test系统中进行如下操作(前提是已经引入了febs-common-security-starter依赖): 1. 系统入口类上添加`@EnableFeignClients`注解; 2. 系统配置文件中添加如下配置: ```yml feign: hystrix: enabled: true hystrix: shareSecurityContext: true ``` 3. 编写FeignClient: ```java @FeignClient(value = FebsServerConstant.FEBS_SERVER_SYSTEM, contextId = "userServiceClient", fallbackFactory = RemoteUserServiceFallback.class) public interface IRemoteUserService { /** * remote /user endpoint * * @param queryRequest queryRequest * @param user user * @return FebsResponse */ @GetMapping("user") FebsResponse userList(@RequestParam("queryRequest") QueryRequest queryRequest, @RequestParam("user") SystemUser user); } ``` 通过这个FeignClient调用即可。