SpringMVC_配置DispatcherServlet

少年易学老难成,一寸光阴不可轻。

XML配置

  按传统方式将DispatcherServlet这样的Servlet配置在web.xml中。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns
="http://java.sun.com/xml/ns/javaee"
  xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  id
="WebApp_ID" version="2.5"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/root-context.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>

 

Java配置

  借助于Servlet 3.0 规范和Spring 3.1 的功能增强,我们可以使用Java将DispatcherServlet配置在Servlet容器中。

package chapter5;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class SpttrWebAppInitialzer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        // TODO Auto-generated method stub
        return new Class<?>[] { RootConfig.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        // TODO Auto-generated method stub
        return new Class<?>[] { WebConfg.class };
    }

    @Override
    protected String[] getServletMappings() {
        // TODO Auto-generated method stub
        return new String[] { "/" };
    }

}

  1.扩展AbstractAnnotationConfigDispatcherServletInitializer的任意类都会自动配置 DispatcherServlet 和 Spring 应用上下文。

  2.当DispatcherServlet启动时,它会创建Spring应用上下文并加载配置文件或配置类中所声明的bean,但是在Spring WEB应用中,还存在由ContextLoaderListener创建的应用上下文用于加载应用中其他的bean(通常是驱动应用后端的中间层和数据层组件)。

  3.通过AbstractAnnotationConfigDispatcherServletInitializer来配置DispatcherServlet只能部署到支持Servlet 3.0 的服务器中才能正常工作。

posted @ 2018-05-08 22:26  学而时习之,不亦说乎?  阅读(773)  评论(0编辑  收藏  举报