2013-05-16 2 views
1

서블릿 2.5에서는 다음 xml 태그를 간단히 복제하고 편집하여 web.xml 파일에 구성된 여러 서블릿을 사용할 수있었습니다.Spring 3, AbstractAnnotationConfigDispatcherServletInitializer, 여러 서블릿

<servlet> 
    <servlet-name>appServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

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

서블릿 3 봄의 AbstractAnnotationConfigDispatcherServletInitializer를 사용하여 여러 서블릿을 만들 든 수 있습니까?

getServletConfigClasses() 메소드에서 2 개의 클래스를 리턴하고 getServletMappings() 메소드에서 2 개의 경로를 리턴하는 것으로 충분할 것이라고 생각했지만 예상대로 작동하지 않습니다.

그래서 스프링 3과 서블릿 3을 사용하여 여러 서블릿을 구성하는 방법이 있습니까?

답장을 보내 주셔서 감사합니다.

public class MyWebAppInitializer implements WebApplicationInitializer { 

    @Override 
    public void onStartup(ServletContext container) { 

     XmlWebApplicationContext appContext = new XmlWebApplicationContext(); 
     appContext.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml"); 

    ServletRegistration.Dynamic dispatcher = 
     container.addServlet("dispatcher", new DispatcherServlet(appContext)); 
     dispatcher.setLoadOnStartup(1); 
     dispatcher.addMapping("/"); 

    ServletRegistration.Dynamic anotherServlet = 
     container.addServlet("anotherServlet", "com.xxx.AnotherServlet"); 
     anotherServlet.setLoadOnStartup(2); 
     anotherServlet.addMapping("/another/*"); 

    ServletRegistration.Dynamic yetAnotherServlet = 
     container.addServlet("yetAnotherServlet", "com.xxx.YetAnotherServlet"); 
     yetAnotherServlet.setLoadOnStartup(3); 
     yetAnotherServlet.addMapping("/yetanother/*"); 

    } 

} 

는 당연히, 당신은 사용자의 편의에 따라, addServlet() 방법 중 하나를 사용할 수 있습니다

답변

1

당신이 뭔가를 할 수 있습니다.

+0

Perfect! ServletRegistration 클래스조차 몰랐습니다. 고맙습니다! – user2391602

관련 문제