背景
包装一个用户服务,一部分功能需要调用远程服务,而另一部分功能调用本地方法,如:
@FeignClient(value="USER-SERVICE")
public interface RemoteUserService{
@GetMapping("getUserByUserId")
public User getUserByUserId(String userId);
}
public interface LocalUserService{
public String getUserId();
}
@Service
public class LocalUserServiceImpl implements LocalUserService{
@Autowired
private HttpServletRequest request;
public String getUserId(){
return (String)request.getSession().getAttribute("user-id");
}
}
为了简化篇幅,并没有处理异常。
当使用者使用这两个用户相关的服务,就需要自动装载两个Service:
@Autowired
private LocalUserService localUserService;
@Autowired
private RemoteUserService remoteUserService