나는'm 현재 이동하려고 내에서 프로젝트 Java EE 을 봄 부팅 프로젝트입니다. 그러나 나는've 템의 혼란에서 부분으로 디스패처 및 서블릿 web.xml 는 것처럼 보인다 web.xml 더 이상 읽고 있는 프로젝트에 의해 더 이상입니다. 현재 프로젝트에서 실행 되는 톰캣 7.
내web.xml
파일의servlet
,servlet-mapping
,필터
와필터를 매핑
나는't 이 정말로 이해하는 방법을 매핑에서 발송자.
나는've 샘플을 첨부의 내web.xml
아래와 version2.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
에 의존하는 봄 dispatcher,그렇다면 어떻게 수행할 수 있습니까가? web.xml
이 이동하는 방법에 대한 봄 부팅 프로젝트가 있습니까?할 수 있는 사람이 저희와 함께 여? 감사합니다!
pom.xml
. 이동하는 방법으로 봄 부팅이 이동하는 귀하의 모든 xml configuration,web.xml 등을 봄 부팅's 자동 configuration+java 구성이 있습니다.봄 부팅 매우 좋은 작품을 할 때 모든 것을 자바 구성과에 따라 그것의 원칙이 적용됩니다. 내 경험에서 그것으로,시작할 때 병합 XML 구성 및 기존 봄의 시작을 깨고 자동 구성 프로세스와 더 나은 시도하는만큼 당신할 수 있습을 준수하는 새로운 부트 모범 사례를 설명합니다.
web.xml
지만,그것을 요구를 추가 <수신기>
에web.xml
. 그리고,필요한 종속성의pom.xml
.
모든 청취자 클래스,필터를 변환 Java 클래스입니다. 이 클래스는 것@구성됩니다.
이 있는 경우 interceptor,이동할 수 있는 구 클래스입니다.
봄 부팅이 선호하는 주석을 통해 xml기반으로 구성은,그래서 당신의 케이스에서 사용하는 대신web.xml
을 구성하는서블릿 servlet-mapping,필터
와필터를 매핑
사용할 수 있습니다,주석을 기반으로 자동 콩 작품을 등록 콩입니다.당신이 필요하다:
변환 xml 기반으로 매핑하는 주석을 기반으로 매핑
-Create 콩 사용하는@콩
주석도록 봄 부팅이 자동으로 그들에게까지 동안 구성 요소 검사입니다.
참고: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html
-등록하는 필터를 추가 필터 콩클래스를 만들 수 있습 그것은 주석으로는@설정
또는@구성 요소
주석을 만들 콩FilterRegistrationBean
등록하는 필터입니다.을 만들 수도 있습 콩의 필터를 자체가 사용하여@콩 주석이 있습니다.
예를 들어,다음 xml 기반으로 필터
<filter>
<filter-name>SomeUrlFilter</filter-name>
<filter-class>com.company.SomeUrlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SomeUrlFilter</filter-name>
<url-pattern>/url/*</url-pattern>
<init-param>
<param-name>paramName</param-name>
<param-value>paramValue</param-value>
</init-param>
</filter-mapping>
해당하는 주석을 기반이 될 것입니다:
@Bean
public FilterRegistrationBean someUrlFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(someUrlFilter());
registration.addUrlPatterns("/url/*");
registration.addInitParameter("paramName", "paramValue");
registration.setName("Filter");
registration.setOrder(1);
return registration;
}
@Bean(name = "someUrlFilter")
public Filter someUrlFilter() {
return new SomeUrlFilter();
}
-Springboot 할 수 있습니 우리가 사용하는 xml 기반의 구성하는 경우 예를 들어 당신을 사용하려면web.xml
.예를 들어:
Web.xml
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/dispatcher.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
과 다른 파일에dispatcher.xml을 만들 수 있습 콩:
<beans ...>
<context:component-scan base-package="com.demo"/>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
참고하는 봄web.xml
일반적으로 라이브에서src/main/웹앱/웹 INF
.
참조할 수 있습니다: https://www.baeldung.com/register-servlet
꽤 많은 시간을 보냈 그래서 공유하는 세 가지를 기억하여 그것을 만들에서 작업합니다.
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
@구성 공급 MvcConfig 확장 WebMvcConfigurerAdapter{ @콩 공공 InternalResourceViewResolver viewResolver(){ InternalResourceViewResolver resolver=new InternalResourceViewResolver(); resolver.setPrefix("/표기/"); resolver.setSuffix(".jsp"); 반 해결책; }