SpringMVC概述
- SpringMVC是一个基于Spring开发的MVC轻量级框架,Spring3.0后发布的组件,SpringMVC可以和Spring无缝整合,使用DispatcherServlet作为前端控制器,且内部提供了处理映射器、处理适配器、视图解析器等组件,可以简化JavaBean的封装,Json转化、文件上传等操作。
入门案例
- 导入SpringMVC框架坐标
-
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.28</version></dependency>
-
-
配置前端控制器DispactherServlet
-
<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:SpringMVC.xml</param-value></init-param><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping> </web-app>
-
-
创建Controller类,配置映射路径,同时讲控制类交给Spring容器
-
package com.example.Controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;@Controller public class Controller01 {@RequestMapping("/show")public String show() {System.out.println("show()..."); // 返回视图路径return "/index.jsp";} }
-
Controller中访问容器中的Bean
- 在Spring的配置文件中,设置组件扫描范围
- 然后SpringMVC的配置文件web.xml中解析配置,然后通过Spring集成web环境的相关知识(这里的知识我还没有太搞明白,先往下学),在web.xml配置文件中配置相应的配置,让服务器在加载web.xml配置文件时,加载到我们配置的Spring的配置文件,从而使注解生效,将对应的类交给Spring容器管理。
- 然后启动服务器,在控制层直接使用@Autowired注解直接注入Bean对象即可
SpringMVC关键组件的解析
- 在上述文章中,我们已经简单完成了SpringMVC快速入门的操作,同时也完成了Spring与SpringMVC的整合,我们只需要按照规则去定义Controller和业务方法即可,但在这个过程中,肯定有很多核心功能类参与其中,这些核心功能类,一般称之为组件。当请求到达服务器时,是哪个组件接收的请求,是哪个组件帮我们找到对应的Controller,是哪个组件帮我们调用的方法,又是哪个组件最终解析的视图?
-
组件 描述 常用组件 处理器映射器:HandlerMapping 匹配映射路径对应的Handler,返回可执行的处理器链对象HandlerExecutionChain对象 RequestMappingHandlerMapping 处理适配器:HandlerAdapter 匹配HandlerExecutionChain对应的适配器进行处理器调用,返回视图模型对象 RequestMappingHandlerAdapter 视图解析器:ViewResolver 对视图模型对象进行解析 InternalResourceViewResolver
-