Я хочу настроить Spring feign с помощью класса конфигурации, и я хочу убедиться, что все методы @Bean
вызываются, когда Spring настраивает клиент feign для меня.
Как это проверить?
Например, у меня есть:
@FeignClient(
name = "PreAuthSendRequest",
url = "${xxx.services.preauth.send.url}",
configuration = AppFeignConfig.class)
public interface RequestService {
@PostMapping("")
@Headers("Content-Type: application/json")
PreAuthResponse execute(@RequestBody PreAuthRequest preAuthRequest);
}
И AppFeignConfig.java
:
@Configuration
@RequiredArgsConstructor
public class AppFeignConfig{
private final HttpClient httpClient;
private final Jackson2ObjectMapperBuilder contextObjectMapperBuilder;
@Bean
public ApacheHttpClient client() {
return new ApacheHttpClient(httpClient);
}
@Bean
public Decoder feignDecoder() {
return new JacksonDecoder((ObjectMapper)contextObjectMapperBuilder.build());
}
@Bean
public Encoder feignEncoder() {
return new JacksonEncoder((ObjectMapper)contextObjectMapperBuilder.build());
}
@Bean
public Retryer retryer() {
return Retryer.NEVER_RETRY;
}
@Bean
public ErrorDecoder errorDecoder() {
return new ServiceResponseErrorDecoder();
}
}
Итак, как проверить, что все методы @Bean
вызваны?Я знаю @MockBean
, но я хочу проверить, действительно ли называются config.feignDecoder()
и т. Д.
Когда я пытаюсь context.getBean(RequestService.class);
и вызвать execute()
метод, кажется, что он отправляетреальный запрос и без проволочек, это не удается, очевидно.