스프링 부트에서의 Dispatcher Servlet 및 web.xml
현재 Java EE에서 Spring Boot 프로젝트로 프로젝트를 전환하려고 합니다.그러나 디스패처 servlet과 web.xml에 대해 혼란스러워서 web.xml이 더 이상 프로젝트에서 읽히지 않는 것 같습니다.현재 프로젝트는 Tomcat 7에서 실행되고 있습니다.
인마이web.xml
파일, 나는 많은 것을 가지고 있습니다.servlet
,servlet-mapping
,filter
그리고.filter mapping
디스패처에서의 매핑 방법을 잘 모르겠어요.
제 샘플도 첨부했습니다.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>
질문:
- 제 안에 있는 모든 것들을
web.xml
스프링 디스패처에 의존할 수 있습니다.그렇다면 어떻게 하면 그것을 달성할 수 있을까요? - 에서 멀어지고 있다.
web.xml
봄 부츠 프로젝트를 위한 방법
여기 안내 좀 해주시겠어요?감사합니다!!
- 네, 스프링 부트는 xml 설정에 의존하지 않게 되어 디스패처 서블릿과 동등한 설정이 자동으로 됩니다.다음 링크를 클릭하면 필터를 등록하는 방법을 볼 수 있습니다.Spring Boot에서 필터 클래스를 추가하려면 어떻게 해야 합니까?
- gradle이 아닌 maven을 사용하는 경우 spring boot 프로젝트에서 XML은 다음과 같습니다.
pom.xml
spring boot을 사용하는 방법은 모든 xml 구성, web.xml 등을 spring boot의 자동 구성 + Java 구성으로 이동하는 것입니다.
spring boot은 Java Configuration에서 모든 작업을 수행하고 그 원칙을 따를 때 매우 적합합니다.지금까지의 경험으로는 XML 설정과 레거시 스프링의 결합을 시작하면 자동 설정 프로세스가 중단되기 시작합니다.새로운 스프링 부트 베스트 프랙티스에 준거하기 위해 가능한 한 많은 노력을 기울이는 것이 좋습니다.
당신은 그것을 가질 수 있다.
web.xml
단, 추가가 필요합니다.<listener> <listener-class>org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener</listener-class> </listener>
…에.
web.xml
그리고 필요한 의존관계pom.xml
.모든 수신기 클래스, 필터가 Java 클래스로 변환됩니다.이 수업은
@Configuration.
인터셉터가 있는 경우 컨피규레이션클래스로 이동할 수 있습니다.
스프링 부트는 xml 기반 구성보다 주석을 선호하기 때문에 이 경우 를 사용하는 대신web.xml
를 설정하다servlet, servlet-mapping, filter
그리고.filter mapping
주석 기반의 자동 콩을 사용하여 콩을 등록할 수 있습니다.그러기 위해서는 다음 작업을 수행해야 합니다.
- xml 기반 매핑을 주석 기반 매핑으로 변환
- 을 만들다
@Bean
주석을 사용하면 스프링 부트가 컴포넌트 스캔 중에 주석을 자동으로 올릴 수 있습니다.
참고: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html
- 필터를 등록하고 필터 콩을 추가하기 위해 클래스를 만들 수 있습니다.
@Configuration
★★★★★★★★★★★★★★★★★」@Component
을 .FilterRegistrationBean
필터를 등록합니다.@Bean 주석을 사용하여 필터 자체의 콩을 만들 수도 있습니다.
예를 들어 다음과 같은 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>
의 : 봄 note 。web.xml
will will will will will will 。src/main/webapp/WEB-INF
.
https://www.baeldung.com/register-servlet 를 참조해 주세요.
꽤 오랜 시간을 들여서 세 가지를 공유했는데, 제가 기억하는 바로는 명령줄에서 작동하게 하는 것이었습니다.
- 가장 중요: JSP는 /src/main/resources/META-INF/resources 폴더에만 보관해야 합니다.자세한 내용은 여기를 참조하십시오.
- jar를 빌드할 때 maven이 폴더 /src/main/resources를 고려하고 있는지 확인하십시오.그렇지 않으면 pom.xml에 이러한 행을 추가합니다.
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
MVC 구성 파일
@Configuration public class MvcConfig extends WebMvcConfigurerAdapter { @Bean public InternalResourceViewResolver viewResolver(){ InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/Representation/"); resolver.setSuffix(".jsp"); return resolver; }
언급URL : https://stackoverflow.com/questions/43225549/dispatcherservlet-and-web-xml-in-spring-boot
'programing' 카테고리의 다른 글
워드프레스의 카테고리에 대한 RSS 피드 (0) | 2023.03.22 |
---|---|
Angular에 정의된 메서드를 호출하는 방법JS 디렉티브? (0) | 2023.03.22 |
Angularjs: input [ text ]ngChange는 값이 변경되는 동안 실행됩니다. (0) | 2023.03.22 |
WordPress 데이터베이스의 어디에 게시된 이미지 링크가 저장됩니까? (0) | 2023.03.22 |
@ConfigurationProperties 스프링 부팅 구성 주석 프로세서를 클래스 경로에서 찾을 수 없습니다. (0) | 2023.03.22 |