DispatcherServlet и web.xml в весенней загрузке
В настоящее время я пытаюсь переместить свой проект из Java EE в Spring Boot project. Тем не менее, я был ошарашен и запутан со стороны диспетчерского сервлета и веба.xml и это похоже на web.xml больше не читается проектом. Текущий проект работает на tomcat 7.
В моем файле web.xml
у меня есть много servlet
, servlet-mapping
, filter
и я действительно не понимаю, как сделать отображение в диспетчере.
Я прикрепил образец моего web.xml
ниже и версия 2.5.
<?xml version="1.0" encoding="UTF-8"?>
<web-app metadata-complete="true" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>displayName</display-name>
<description>description</description>
<resource-ref>
...
</resource-ref>
<filter>
<filter-name>Some Filter Name</filter-name>
<filter-class>Some Filter Class</filter-class>
<init-param>
<param-name>Some Param Name</param-name>
<param-value>Some Value</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Some Filter Name</filter-name>
<url-pattern>Some url-pattern</url-pattern>
</filter-mapping>
<context-param>
<param-name>Some Param Name</param-name>
<param-value>Some Param Value</param-value>
</context-param>
<servlet>
<servlet-name>Some Servlet Name</servlet-name>
<servlet-class>Some Servlet Class</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Some Servlet Name</servlet-name>
<url-pattern>Some Url Pattern</url-pattern>
</servlet-mapping>
</web-app>
Qns:
- Должен ли я преобразовать все вещи в моем
web.xml
, чтобы полагаться на диспетчера весны, если да, то как я могу этого достичь? - отходит от
web.xml
путь для весны неѐ?
2 ответа:
- Да, spring boot больше не ретранслирует конфигурацию xml и автоматически настраивает эквивалент сервлета диспетчера. Вы можете перейти по следующей ссылке, чтобы узнать, как зарегистрировать фильтры: Как добавить класс фильтров в Spring Boot?
- Если вы используете maven, а не gradle, единственным XML-файлом в вашем проекте spring boot должен быть
pom.xml
. Способ пойти с spring boot-это переместить всю вашу конфигурацию xml, web.xml etc для автоматической настройки spring boot + ваша java конфигурация.Spring boot работает очень хорошо, когда вы делаете все в конфигурации java и следуете ее принципам. По моему опыту, когда вы начинаете объединять конфигурацию XML и устаревшую spring, она начинает нарушать процесс автоматической настройки, и гораздо лучше стараться как можно больше соответствовать новым рекомендациям spring boot.
Вы можете сохранить свой
web.xml
, но для этого нужно добавить<listener> <listener-class>org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener</listener-class> </listener>
В
web.xml
. И, требуемая зависимостьpom.xml
.Все классы прослушивателей, фильтры преобразуются в класс Java. Этот класс будет
@Configuration.
Если у вас есть перехватчик, который можно переместить в класс конфигурации.