Атрибуты ServerWebExchange пусты

У меня есть контроллер Spring Boot на основе аннотаций, построенный на WebFlux. Я реализую WebFilterвнутри WebFilter Я призвал serverWebExchange.getAttributes() и он вернул 4 атрибута, что нормально. Но после этого он перестал работать и теперь всегда возвращает пустую карту атрибутов. Я ничего не изменил в контроллере, но даже если бы я это сделал, я все равно должен получить эти атрибуты. Почему это перестало работать?

1 ответ

Решение

Это работает, когда я сначала делаю:

this.handlerMapping.getHandler(serverWebExchange)

где handlerMapping это боб типа RequestMappingHandlerMapping который вы можете ввести из WebFlux.

Эта строка кода инициализирует serverWebExchange атрибутов. На вопрос я написал, что это сработало один раз, а потом остановилось. Причина в том, что я экспериментировал с handlerMapping в то время, и это заставило его работать, затем я удалил его, и атрибуты перестали инициализироваться. Отладка показала, что обычно эти атрибуты устанавливаются после WebFilterс применяются. Эта строка кода делает его инициализировать раньше.

Другие вопросы по тегам