目录
- 入门案例
-
- [1 导入SpringMVC坐标与Servlet坐标](#1 导入SpringMVC坐标与Servlet坐标)
- [2 创建SpringMVC控制器类](#2 创建SpringMVC控制器类)
- [3 初始化SpringMVC环境](#3 初始化SpringMVC环境)
- [4 初始化servlet容器,加载springmvc环境,并设置springmvc技术处理的请求](#4 初始化servlet容器,加载springmvc环境,并设置springmvc技术处理的请求)
- 工作流程
入门案例
创建模块



1 导入SpringMVC坐标与Servlet坐标
dart
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
2 创建SpringMVC控制器类
等同于Servlet功能

3 初始化SpringMVC环境
(同Spring环境),设定SpringMVC加载对应的bean

4 初始化servlet容器,加载springmvc环境,并设置springmvc技术处理的请求
dart
package com.baidu.config;
// 4 定义一个servlet容器启动的配置类,在里面加载spring的配置
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
// 加载springmvc容器配置
protected WebApplicationContext createServletApplicationContext() {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(SpringMvcConfig.class);
return ctx;
}
// 设置哪些请求归属springmvc处理
protected String[] getServletMappings() {
return new String[]{"/"};
}
// 加载spring容器配置
protected WebApplicationContext createRootApplicationContext() {
return null;
}
}
添加tomcat插件
dart
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
启动

访问

注意:
@RequestMapping注解用来设置当前控制器方法请求访问路径
@ResponseBody用于设置当前控制器方法响应内容为当前返回值,无需解析
工作流程
启动服务器初始化过程
- 服务器启动,执行ServletContainersInitConfig类,初始化web容器
- 执行createServletApplicationContext方法,创建了WebApplicationContext对象
3.加载SpringMvcConfig
4.执行@ComponentScan加载对应的bean
5.加载UserController,每个@RequestMapping的名称对应一个具体的方法
6.执行getServletMappings方法,定义所有的请求都通过SpringMVC
单次请求过程
1.发送请求localhost/save
2.web容器发现所有请求都经过springMVC,将请求交给SpringMVC处理
3.解析请求路径/save
4.由/save匹配执行对应的方法save()
5.执行save()
6.检测到有 @ResponseBody 直接将 save () 方法的返回值作为响应体返回给请求方