SpringMVC和SpringBoot如何配置DispatcherServlet。同时springmvc的整个10步流程。

一、SpringMVC配置DispatcherServlet

1.1 SpringMVC基于XML配置DispacherServlet

    springMVC    
    org.springframework.web.servlet.DispatcherServlet    
        
        contextConfigLocation    
        classpath*:/springMVC.xml    
        
    1    
    
    
    springMVC    
    /    
  

在Web.xml里配置DispatcherServlet:

  • 1是启动顺序,让这个Servlet随Servletp容器一起启动。
  • init-param 配置springMVC的配置文件读取路径
  • servlet-mapping 对所有请求路径响应DisPacherServlet。

1.2 SpringMVC基于配置类配置DisPacherServlet

package config;

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

public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    
    
//将DispatchServlet映射到"/"
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }


//指定配置类
    @Override
    protected Class[] getServletConfigClasses() {
        return new Class[]{WebConfig.class};
    }
    @Override
    protected Class[] getRootConfigClasses() {
        return new Class[]{RootConfig.class};
    }
    

}

首先需要知道扩展AbstractAnnotationConfigDispatcherServletInitializer的任意类都会自动地配置DispatcherServlet和Spring应用上下文。

继承这个类需要重写3个方法:

  1. getServletMappings 配置dispacherServlet映射到的路径。
  2. getServletConfigClasses() ,指定当DispatcherServlet加载应用上下文时,使用在WebConfig配置类(使用java配置)中的定义的关于web组件的bean,如控制器、视图解析器以及处理器映射bean。
  3. getRootConfigClasses()指定了创建ContextLoaderListener应用上下文bean的配置类。这些bean通常是驱动应用后端的中间层和数据层组件。

二、SpringBoot配置

2.1 配置类中配置

@Bean  
    public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {  
        return new ServletRegistrationBean(dispatcherServlet,"/api/*");  
    }  

2.2 SpringBoot配置文件中配置
可以在application.properties加入配置,如:

server.servlet-path=/api/*

三、SpringMVC执行流程

SpringMVC执行流程.png
  1. 用户请求DispathcerServlet。
  2. DispatcherServlet接受到请求,将根据请求信息交给处理器映射器。
  3. 处理器映射器(HandlerMapping)根据用户的url请求查找匹配该url的Handler,并返回一个执行链。
  4. DispacherServlet再根据执行链请求处理器适配器(HandlerAdapter)。
  5. 处理器适配器调用相应的handle进行处理。
  6. 对应的handler处理完成后返回ModelAndVIew给处理器适配器。
  7. 处理器适配器将接受的ModelAndView返回给DispatcherServlet。
  8. DispatcherServlet请求视图解析器来解析视图。
  9. 视图解析器处理完后返回View对象给DispacherServlet。
  10. 最后前端控制器对View进行视图渲染(即将模型数据填充至视图中)。

你可能感兴趣的:(SpringMVC和SpringBoot如何配置DispatcherServlet。同时springmvc的整个10步流程。)