Подтвердить что ты не робот

Отключите обработку аннотаций, но включите функцию веб-фрагментов в сервлет api 3.0 (Tomcat7)

Я пробовал Tomcat 7.0 и Servlet API 3.0.

У меня было приложение для Servlet API 2.5. Поэтому я отредактировал web.xml, чтобы настроить его для Servlet API 3.0. После изменения время начала Tomcat увеличилось на 14 секунд.

Итак, я установил <web-app metadata-complete="true" ..., и время начала Tomcat вернулось к нормальному состоянию, потому что tomcat не сканирует каждый класс для аннотаций. Это хорошо, но функция web-fragment.xml также отключена.

Интересно, можно ли отключить аннотационное сканирование Tomcat, но разрешить обработку web-фрагмента .xml.

4b9b3361

Ответ 1

Оба фрагмента и аннотации являются метаданными приложения. Таким образом, метаданные-полные применяются как для обработки аннотаций, так и для обработки фрагментов. Если для web.xml установлено metadata-complete, обработка обработки аннотаций и фрагментов отключена.

Но в метаданных-complete также может быть установлен web-fragments.xml. Таким образом, можно делать выборочную обработку аннотаций и фрагментов.

Включение полного набора метаданных в web.xml и отключение в web-fragments.xml будет обрабатывать фрагменты, но отключает обработку аннотаций для классов под web-fragments.xml

Ответ 2

Рассмотрим использование элемента "абсолютного упорядочения" в вашем web.xml. Servlet API 3.0 Final Spec описывает его использование в разделе 8.2.2 "Заказ web.xml и web-fragment.xml".

Вы можете указать точные веб-фрагменты, которые нужно обработать, отключить обработку аннотаций классов в банке веб-фрагмента ( "метаданные-полные" в веб-фрагменте из списка) и, конечно же, исключить другие баночки из обработки с помощью такого рода включения веб-фрагмента.