복붙노트

[SPRING] spring-boot - springMVC에 대한 디스패처 서블릿을 실제로 등록하는 코드는 무엇입니까?

SPRING

spring-boot - springMVC에 대한 디스패처 서블릿을 실제로 등록하는 코드는 무엇입니까?

나는 spring-boot에서 WebApplicationInitializer의 구현이 실제로 디스패처 서블릿을 등록하려고하는지 알아 내려고한다.

나는 SpringBootServletInitializer에서 어떤 조각 코드도 찾지 못했습니다.

대신, AbstractDispatcherServletInitializer는 작업을 수행하지만 추상적입니다. Eclipse의 도움을 받아 구체적인 구현을 찾을 수 없습니다.

따라서 springMVC에 대한 디스패처 서블릿을 등록하기 위해 실제로 클래스가 호출되는 코드 조각은 무엇입니까?

이것은 다음 질문입니다. 스프링 부트가 특정 URL을 제공하는 방법은 무엇입니까?

해결법

  1. ==============================

    1.다음은 결국 DispatcherServlet을 등록하는 Spring Boot 초기화 단계에 대한 설명입니다.

    다음은 결국 DispatcherServlet을 등록하는 Spring Boot 초기화 단계에 대한 설명입니다.

    @EnableAutoConfiguration
    public class TestSpring {
    
        public static void main(String[] args) throws Exception {
            SpringApplication.run(TestSpring.class, args);
        }
    }
    

    단계는 다음과 같습니다.

  2. ==============================

    2.자동 구성 중에 Spring Boot가 수행하는 것을 찾으려면 * AutoConfiguration 클래스를 살펴 봐야합니다. 이 경우 DispatcherServletAutoConfiguration.

    자동 구성 중에 Spring Boot가 수행하는 것을 찾으려면 * AutoConfiguration 클래스를 살펴 봐야합니다. 이 경우 DispatcherServletAutoConfiguration.

  3. ==============================

    3.스프링 부트 애플리케이션을 전통적인 WAR로 전개하려면 서블릿 3.0 스펙은 서비스 제공자가 서블릿에 3.0 웹 서블릿 컨테이너 (서블릿, 필터, ServletContextInitializer)를 자동으로 부트 스트랩하도록 설정하는 방법을 자세히 설명한다. 컨테이너. "마법"은 스프링 - 웹 의존성에서 성취됩니다. 당신이 unjar하면 파일 "spring-web / META-INF / services / javax.servlet.ServletContainerInitializer"를 찾을 수 있습니다. 파일을 열면 "org.springframework.web.SpringServletContainerInitializer"라는 한 줄을 볼 수 있습니다. 이 클래스는 WebApplicationInitializer를 구현하는 모든 클래스, 특히 onStartup (ServletContext servletContext) 메소드에 위임합니다. SpringBootServletInitializer와 같은 Spring Boot에서 알고있는 구체적인 클래스가 하나 있습니다.

    스프링 부트 애플리케이션을 전통적인 WAR로 전개하려면 서블릿 3.0 스펙은 서비스 제공자가 서블릿에 3.0 웹 서블릿 컨테이너 (서블릿, 필터, ServletContextInitializer)를 자동으로 부트 스트랩하도록 설정하는 방법을 자세히 설명한다. 컨테이너. "마법"은 스프링 - 웹 의존성에서 성취됩니다. 당신이 unjar하면 파일 "spring-web / META-INF / services / javax.servlet.ServletContainerInitializer"를 찾을 수 있습니다. 파일을 열면 "org.springframework.web.SpringServletContainerInitializer"라는 한 줄을 볼 수 있습니다. 이 클래스는 WebApplicationInitializer를 구현하는 모든 클래스, 특히 onStartup (ServletContext servletContext) 메소드에 위임합니다. SpringBootServletInitializer와 같은 Spring Boot에서 알고있는 구체적인 클래스가 하나 있습니다.

  4. from https://stackoverflow.com/questions/39209924/spring-boot-which-piece-of-code-actually-register-dispatcher-servlet-for-sprin by cc-by-sa and MIT license