Как зарегистрировать сервлет с включенной асинхронной поддержкой в ​​Spring-Boot?

Я планирую перенести свое старое приложение на Spring-Boot.
Я хочу перестать использовать дескриптор web.xml и зарегистрировать старый чистый сервлет (с включенной поддержкой асинхронности) и связанный с ним ServletContextListener.


person Karol Król    schedule 30.07.2015    source источник
comment
И где собственно вопрос? Какие шаги вы сделали до сих пор?   -  person nKognito    schedule 30.07.2015
comment
Я знаю, что оба объекта должны быть аннотированы как bean. Но я не знаю, какой оберточный объект я должен использовать.   -  person Karol Król    schedule 30.07.2015
comment
Что вы имеете в виду под обертыванием объекта? Покажи хоть код   -  person nKognito    schedule 30.07.2015


Ответы (3)


Spring Boot автоматически зарегистрирует любые Servlet bean-компоненты в контексте вашего приложения с контейнером сервлета. По умолчанию поддерживаемый асинхронный режим установлен на true, поэтому вам не нужно ничего делать, кроме создания bean-компонента для вашего Servlet.

Если по какой-либо причине вы хотите получить больший контроль над регистрацией вашего сервлета, то вместо того, чтобы выставлять сам сервлет как bean-компонент, вы можете обернуть его в файл ServletRegistrationBean.

person Andy Wilkinson    schedule 03.08.2015

Поместите @EnableAsync в свой класс приложения. Подробнее см. здесь.

person wero    schedule 30.07.2015

servletRegistrationBean.isAsyncSupported() по умолчанию равно true, который определяет, поддерживается ли функция Async или нет.

введите здесь описание изображения.

Если вы столкнулись с проблемой ниже, перейдите по ссылке

java.lang.IllegalArgumentException: поддержка асинхронного режима должна быть включена для сервлета и для всех фильтров, задействованных в обработке асинхронного запроса. Это делается в коде Java с помощью Servlet API или путем добавления «true» к объявлениям сервлета и фильтра в web.xml. Также вы должны использовать контейнер Servlet 3.0+

person Prasanth Rajendran    schedule 20.05.2020