各个微服务通过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);
}