У меня есть клиентский интерфейс 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 правильным инструментом для этого?