Допустим, в приложении есть несколько классов org.springframework.web.reactive.function.client.WebClient, которые созданы таким образом:
@Bean
@Qualifier("one")
public WebClient one() {
return WebClient.builder().baseUrl("someUrl").build();
}
@Bean
@Qualifier("two")
public WebClient two() {
return WebClient.builder().baseUrl("someUrl").build();
}
//etc.
Необходимо добавить фильтры для всех созданных WebClient. Что-то такое:
public WebClient intercepter(WebClient webClient) {
return webClient.mutate().filter(setupFilter());
}
Возможно ли это с пружиной 5?




Я полагаю, у вас нет прав на изменение предоставленного кода bean-компонентов?
В этом случае вы можете реализовать BeanPostProcessor - обнаруживать реализации WebClient (или методы по типу возвращаемого значения) и возвращать обновленное значение в каждом методе.
В качестве альтернативы вы можете заменить реальную реализацию WebClient декоратором в вашем постпроцессоре.
Вот пример о том, как реализовать процессор. В этом случае операции блокировки внедряются в оригинальные методы.
Не забудьте включить ваш постпроцессор в контекст