Как добавить ведение журнала в конечную точку webflux в Spring-mvc?

У меня есть spring-mvc приложение с другим @RestController. Теперь я хочу добавить Mono<String> конечную точку и записать метку времени запроса с указанием пути URL, а также метку времени ответа.

Но как? Я не могу просто @EnableWebFlux, так как для этого мне пришлось бы отключить spring -mvc.

Как я могу зарегистрировать явный фильтр для конечной точки webflux, который улавливается при вызове, и прямо перед тем, как ответ будет записан обратно async?

@RestController
public class FluxService {
   @PostMapping
   public Mono<String> post() {
         return webClient.post().uri(uri).bodyValue(payload).retrieve().bodyToMono(String.class);
   }
}

Мне нужно расширенное ведение журнала на @PostMapping конечной точке, а не на webClient!


person membersound    schedule 30.03.2020    source источник


Ответы (1)


MVC - это API на основе блокировок / сервлетов, смешивание его с webflux не сработает. Они используют разные фильтры, безопасность и т. Д., Поскольку MVC предполагает много вещей ThreadLocal. (Могу ли я использовать SpringMvc и webflux вместе?)

Если вы действительно хотите смешать их таким образом, вы можете использовать .doOnNext (), как только вы получите моно и вызовете там свой регистратор.

person Adam Bickford    schedule 01.04.2020