Java Spring - 拦截REST客户端的执行(Hystrix Feign)

问题描述 投票:1回答:1

我有一个这样的REST客户端界面:

public interface NameSearchClient {
    @RequestLine("POST")
    @Headers("Content-Type: application/json")
    SearchResponse searchByName(NameSearchRequest request);

}

它在工厂类中实现和设置,如下所示:

@Component
public class NameClientFactory {
    public <T> T createFeignClient(Class<T> clientClass, String apiUrl) {
        return Feign.builder()
                .encoder(new GsonEncoder())
                .decoder(new GsonDecoder())
                .target(clientClass, apiUrl);
    }
}

我想知道是否有可能编写一个Aspect注释,在该客户端进行的每次调用时,执行一些操作(在我的情况下是另一个HTTP调用)并为请求添加一个新标头? AspectJ是正确的工具吗?

java spring aspectj hystrix
1个回答
1
投票

创建一个实现feign.RequestInterceptor的bean并在那里完成你的工作:

@Component
public class FeignRequestInterceptor implements RequestInterceptor {
  @Override
  public void apply(RequestTemplate template) {
    // your code here
  }
}

另见this answer

© www.soinside.com 2019 - 2024. All rights reserved.