AbstractAnnotationConfigDispatcherServlet을 사용하는 경우이니셜라이저 및 웹어플리케이션이니셜라이저?
저는 Spring 4.0.7과 함께 일하고 있습니다.
저는 JavaConfig를 통해 Spring MVC 구성에 대해 조사했습니다.
실제로 어제까지 이 두 가지 옵션을 사용하는 두 가지 구성을 보았습니다.
- 확장된
AbstractAnnotationConfigDispatcherServletInitializer
- 확장된
WebMvcConfigurerAdapter
그리고. 기구들WebApplicationInitializer
참고: (2)는 두 개의 클래스로, 하나는 확장용이고 다른 하나는 구현용입니다.
변환기, 포맷터, 리소스 핸들러 등을 구성할 수 있는 많은 예를 발견했기 때문에 (2)를 사용하고 있습니다.
하지만 최근에 스택 오버플로에 대한 질문을 도와주려고 했는데 (1)이 존재한다는 것을 깨달았습니다.구글에서 (1)에 대해 몇 가지 개요를 했고 (1)과 관련된 몇 가지 예시가 존재합니다.
제 질문은 이 게시물의 제목이 어떻게 묘사되느냐 입니다.
감사해요.
서블릿 3.0 사양이 출시되면서 xml을 사용하지 않고 서블릿 컨테이너를 구성할 수 있게 되었습니다.이를 위해 Servlet 사양에 가 있습니다.이 클래스에서 당신은 필터, 청취자, 서블릿 등을 등록할 수 있습니다. 당신이 전통적으로 하는 것처럼.web.xml
.
스프링은 수업을 다루는 방법을 아는 구현을 제공합니다.봄은 또한 당신의 삶을 더 쉽게 하기 위해 확장할 수 있는 몇가지 기본 수업들을 제공합니다.AbstractAnnotationConfigDispatcherServletInitializer
그것들 중 하나입니다.그것은 A를 등록합니다.ContextLoaderlistener
및 ()및 aDispatcherServlet
클래스를 하여 두 할 수 있으며 두스두성를게고를할다수할es다수d할osuy를yo두dogons고s DispatcherServlet
서블릿 매핑을 제공합니다.
WebMvcConfigurerAdapter
는 Spring MVC기한로해된 xml을는에를ey다는sdreleeefgmgglc,해에는g는기m한,로c를DispatcherServlet
The Spring MVC기해를해기emg를c해.. 그.WebMvcConfigurerAdapter
야다에 사용해야 .@Configuration
수업.
@Configuration
@EnableWebMvc
public class WebConfiguration
extends WebMvcConfigurerAdapter implements WebApplicationInitializer
{ ... }
기본적으로 두 가지 다른 관심사이기 때문에 혼합하는 것은 추천하지 않습니다.첫 번째는 서블릿 컨테이너를 구성하기 위한 것이고, 두 번째는 Spring MVC를 구성하기 위한 것입니다.
당신은 그것들을 두 개의 반으로 나누길 원할 것입니다.
구성의 경우.
@Configuration
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter { ... }
응용 프로그램을 부트스트래핑합니다.
public class MyWebApplicationInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer
{
protected Class<?>[] getRootConfigClasses() {
return new Class[] {RootConfig.class};
}
protected Class<?>[] getServletConfigClasses() {
return new Class[] {WebConfiguration .class};
}
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
ΔΔ Δ Δ Spring Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ DispatcherServlet
및는ContextLoaderListener
.
처음부터 서블릿 컨테이너가 어떻게 시작되는지 살펴볼 필요가 있습니다.
- 스프링 서블릿 컨테이너Initializer는 모든 Servlet 3.0 컨테이너에 의해 자동으로 부트스트랩됩니다.
- 스프링 서블릿 컨테이너Initializer는 WebApplication을 구현하는 클래스를 찾습니다.이니셜라이저(스프링 링크).io; 또한 Craig Walls의 "Spring In Action" 제4판에 잘 묘사되어 있습니다, p.135).
시작 방법 - 스프링 서블릿 컨테이너Initializer는 WebApplication을 구현하는 적절한 클래스를 찾아야 합니다.이니셜라이저.이를 실현하는 두 가지 방법이 있습니다.
- 하나는 웹 애플리케이션을 구현하는 것입니다.Initializer 자체적으로 도입되었으며, 인터페이스는 Spring 3.1에 도입되었습니다.
- 두 번째는 AbstractAnnotationConfigDispatcherServlet을 확장하는 것입니다.WebApplication도 구현하는 Initializer 클래스이니셜라이저.이 클래스는 편의를 위해 Spring 3.2에 도입되었으며 "Java 기반 Spring 구성을 사용하는 응용 프로그램에서 선호하는 접근 방식"입니다. - 링크 참조.이를 통해 루트 응용프로그램 컨텍스트뿐만 아니라 서블릿 응용프로그램 컨텍스트를 시작할 수 있습니다.
또한 언급하신 WebMvcConfigurerAdapter가 WebApplication과 혼동되어서는 안 된다는 점을 강조하고 싶습니다.이니셜라이저.이름에서 알 수 있듯이 "Mvc"를 설정하는 것과 관련이 있습니다.WebMvcConfigurer의 빈 메서드를 구현하는 어댑터 클래스입니다.@EnableWebMvc 주석으로 Mvc 컨트롤러를 구성할 때 사용합니다.
도움이 되길 바랍니다.
언급URL : https://stackoverflow.com/questions/26676782/when-use-abstractannotationconfigdispatcherservletinitializer-and-webapplication
'programing' 카테고리의 다른 글
동일한 시스템 내의 여러 프로젝트에 대해 여러 사용자 이름을 가져옵니다. (0) | 2023.09.07 |
---|---|
Excel에서 고유 값 계산 (0) | 2023.09.07 |
요청을 사용하여 Node.js의 이진 컨텐츠 가져오기 (0) | 2023.09.07 |
ASP를 사용하여 여러 응용프로그램에 걸쳐 세션을 공유합니다.NET Session State Service (0) | 2023.09.07 |
MySQL 메모리 테이블과 동등한 PostgreSQL? (0) | 2023.09.07 |