feign远程调用


各个微服务通过http接口的形式提供自身的服务,服务之间调用可以通过feign实现。

首先新建一个interface接口,加上@FeignClient注解,其中value值即为服务的名字,接口地址为服务的接口地址。

/**
 * @author liuzhibin
 * Date: 2019/10/27
 */
@FeignClient(value = "ofa-admin",fallback = UserInfoFallBack.class)
public interface UserInfoFeign {


    /**
     * 根据token获取用户信息
     *
     * @param token
     * @return
     */
    @GetMapping("/admin/ofaUser/userInfo")
    RestData getUserInfo(@RequestParam(value = "token") String token);
}

feign使用:

   
    @Autowired
    private UserInfoFeign userInfoFeign;

    /**
     * 获取后台登录人信息
     *
     * @return
     */
    public UserInfoDto getUserInfo() {
        String token = TokenUtil.getToken(request).get();
        RestData data = userInfoFeign.getUserInfo(token);
        if (AssertUtil.isEmpty(data) || AssertUtil.isEmpty(data.getData())) {
            throw new RestException(-1, "获取不到登录人信息");
        }
        return JSON.parseObject((String) data.getData(), UserInfoDto.class);
    }