目录
二. AbstractContextLoaderInitializer
三. AbstractDispatcherServletInitializer
四. AbstractAnnotationConfigDispatcherServletInitializer
简单地介绍WebApplicationInitializer以及子类(Spring MVC中使用到的子类)
一. WebApplicationInitializer
/**
* 在Servlet3.0+的环境中,要去实现的接口,为了编程式地配置ServletContext。
*
* 这个SPI的实现类自动会被SpringServletContainerInitializer发现。
* SpringServletContainerInitializer,会自动地被任何Servlet3.0容器所引导
*
* 传统的xml方式:
* 大多数的Spring使用者建立一个web application的话,需要注册Spring的DispatcherServlet。比如在WEB-INF/web.xml中,如下:
* <servlet>
* <servlet-name>dispatcher</servlet-name>
* <servlet-class>
* org.springframework.web.servlet.DispatcherServlet
* </servlet-class>
* <init-param>
* <param-name>contextConfigLocation</param-name>
* <param-value>/WEB-INF/spring/dispatcher-config.xml</param-value>
* </init-param>
* <load-on-startup>1</load-on-startup>
* </servlet>
*
* <servlet-mapping>
* <servlet-name>dispatcher</servlet-name>
* <url-pattern>/</url-pattern>
* </servlet-mapping>
*
* 基于代码方式的配置,如下:
* 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("/");
* }
*
* }
*
* 还可以选择继承{@link org.springframework.web.servlet.support.AbstractDispatcherServletInitializer}.
*
*
* public class MyWebAppInitializer implements WebApplicationInitializer {
*
* @Override
* public void onStartup(ServletContext container) {
* // Create the 'root' Spring application context
* AnnotationConfigWebApplicationContext rootContext