복붙노트

[SPRING] web.xml과 같이 spring-boot 서블릿을 설정하는 방법은?

SPRING

web.xml과 같이 spring-boot 서블릿을 설정하는 방법은?

web.xml에 간단한 서블릿 구성이 있습니다.

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.atmosphere.cpr.MeteorServlet</servlet-class>
    <init-param>
        <param-name>org.atmosphere.servlet</param-name>
        <param-value>org.springframework.web.servlet.DispatcherServlet</param-value>
    </init-param>
    <init-param>
        <param-name>contextClass</param-name>
        <param-value>
            org.springframework.web.context.support.AnnotationConfigWebApplicationContext
        </param-value>
    </init-param>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>net.org.selector.animals.config.ComponentConfiguration</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

SpringBootServletInitializer에서 어떻게 다시 작성할 수 있습니까?

해결법

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

    1.당신의 질문을 액면 그대로 받아들이면 (SpringBootServletInitializer가 기존 앱과 중복되기를 바란다) 나는 다음과 같이 보일 것이다.

    당신의 질문을 액면 그대로 받아들이면 (SpringBootServletInitializer가 기존 앱과 중복되기를 바란다) 나는 다음과 같이 보일 것이다.

    @Configuration
    public class Restbucks extends SpringBootServletInitializer {
    
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(Restbucks.class, ComponentConfiguration.class);
        }
    
        @Bean
        public MeteorServlet dispatcherServlet() {
            return new MeteorServlet();
        }
    
        @Bean
        public ServletRegistrationBean dispatcherServletRegistration() {
            ServletRegistrationBean registration = new ServletRegistrationBean(dispatcherServlet());
            Map<String,String> params = new HashMap<String,String>();
            params.put("org.atmosphere.servlet","org.springframework.web.servlet.DispatcherServlet");
            params.put("contextClass","org.springframework.web.context.support.AnnotationConfigWebApplicationContext");
            params.put("contextConfigLocation","net.org.selector.animals.config.ComponentConfiguration");
            registration.setInitParameters(params);
            return registration;
        }
    
    }
    

    자세한 내용은 기존 앱 변환에 대한 문서를 참조하십시오.

    하지만 Atmosphere를 사용하는 것보다는 Tomcat과 Spring에서 기본 웹 소켓 지원을 사용하는 것이 좋습니다 (websocket 샘플 및 예제 참조).

  2. from https://stackoverflow.com/questions/22389996/how-to-configure-spring-boot-servlet-like-in-web-xml by cc-by-sa and MIT license