서블릿 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() 방법 중 하나를 사용할 수 있습니다
Perfect! ServletRegistration 클래스조차 몰랐습니다. 고맙습니다! – user2391602