Feign:实现动态URL
Feign动态URL调用
·
Feign动态URL调用
FeignClient类:
FeignClient 中不需要写url,使用 @RequestLine修饰方法,调用url作为参数传入
@FeignClient(name="mekFeignClient",fallback = MekFeignClientFallback.class,configuration = RemoteFeignConfig.class)
public interface MekFeignClient {
@RequestLine("GET")
String list(URI uri);
}
代码调用:
调用的地方必须引入 FeignClientConfiguration,必须有Decoder,Encoder,Client
使用服务名调用Client为必须传入参数,否则无法找到对应host,具体参考:Feign 使用服务名调用 - 简书
@Slf4j
@Component
@Import(FeignClientsConfiguration.class)
public class CallerService {
MekFeignClient mekFeignClient;
// 创建构造器
// 调用类以构建函数(Constructor) 的方式注入 FeignClient 类
public BusiProcessService(Decoder decoder, Encoder encoder, Client client) {
mekFeignClient = Feign.builder().client(client).encoder(encoder).decoder(decoder)
.target(Target.EmptyTarget.create(MekFeignClient.class));
}
public String test() {
// 请求地址,MEK为服务名
String url = "http://MEK/model/list";
String res = "";
//使用FeignClient请求服务
try {
res = mekFeignClient.list(new URI(url));
}catch (Exception e){
logger.error("feign call error,cause:{}",e);
}
return GsonUtils.toJsonString(res);
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)