Spring MVC注解开发及其执行流程

配置文件

配置web.xml文件

配置listener监听器

在这里插入图片描述
具体作用在执行流程说明。

配置servlet标签

在这里插入图片描述

包含主配文件的位置和名称,以及处理请求的类型。

配置servlet.xml文件

启动注解

    <!-- 启用spring mvc 注解 -->
	<context:annotation-config />

设置注解作用域

	<!-- 设置使用注解的类所在的包 可以通过扫描,创建后端控制器 -->
	<context:component-scan base-package="com.asm"></context:component-scan>

PS:component-scan默认扫描@Controller、@Service、@Repository、@Component标识的类

配置请求分派器

	<!-- 请求分派器(前端控制器) 完成请求和注解POJO的映射 -->
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

配置视图定位器

	<!-- 视图定位器 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/page/" />
		<property name="suffix" value=".jsp" />
	</bean>

配置示例:

在这里插入图片描述

注释后端控制器

@Controller

标识后端控制器 不需要实现任何接口

在这里插入图片描述

@RequestMapping和@RequestParam

  • @RequestMapping用来标识请求对应的方法;
  • @RequestParam用于当表单的请求参数名和方法中形参不一致时,将指定的请求参数赋给方法中形参。

:若形参名和表单提交的参数名一致,参数自动注入,无需使用@RequestParam注释形参
在这里插入图片描述
PS:方法的返回值不一定要是ModelAndView,可以是包含转向信息的字符串,如上图。

使用ModelAndView对象传递转向信息:
在这里插入图片描述

使用客户端(重定向)跳转

Spring MVC默认的跳转方式是服务端跳转。

通过ModelAndView对象可以采用重定向的方式跳转页面:

在这里插入图片描述
PS:使用重定向,无需经过视图定位器对转向信息进行组合。

使用表单对象作为方法参数

Spring MVC支持方法的形参为表单对象

在这里插入图片描述
执行该方法时:

  1. 自动创建出对应的对象;
  2. 自动将表单中的参数设到对象中的同名属性,不同类型的数据将进行自动转换
  3. 自动将对象设到request中,属性名为变量名属性值为该表单对象;

:表单对象必须为每个属性提供setter、getter方法。

Spring和Spring MVC集成

配置文件

如果Spring使用配置方式开发,则需配置Spring配置文件的位置,如果是注解方式,则无需配置。

在web.xml文件中添加全局初始化参数:

在这里插入图片描述

@Resource

使用@Resource标识关联属性

在这里插入图片描述

对象创建后,自动给关联属性注入数据:

  1. 到application中拿bean工厂;
  2. 从bean工厂中找id为@Resource中name的值对应的对象,将对象注入给关联属性。

执行流程

初始化

假设使用Tomcat服务器

  1. Tomcat启动,创建监听器对象;
  2. Tomcat创建application内置对象,读取全局初始化参数,设到application中;
  3. 监听器监听到application创建,自动调用contextInitialized方法,通过传入的事件对象拿到application;
  4. 从application中拿到全局初始化参数,根据初始化参数创建bean工厂,启动IOC容器, 创建bean工厂中配置的对象,并将bean工厂设到application中;
  5. Tomcat读取servlet标签,创建DispatcherServlet对象,执行init方法,读取主配文件,创建web工厂:
    ① 通过web工厂中的component-scan扫描,创建后端控制器对象;
    ② 创建请求分派器对象;
    ③ 创建视图定位器;

:使用Spring注解开发时,直接根据配置类创建出bean工厂。

处理请求

Tomcat收到请求:

  1. Tomcat将请求传给DispatcherServlet对象;
  2. DispatcherServlet截取请求,将请求传给web工厂中的请求分派器;
  3. 请求分派器到web工厂中找后端控制器(@Controller 标签);
  4. 通过@RequestMapping标签,将请求映射到对应的方法中;
  5. 向方法中注入参数,并执行;
  6. 方法执行结束后,返回转向信息给请求分配器;
  7. 请求分派器根据通过视图定位器组合后的转向信息,进行服务端跳转。

说明:本文仅用作学习笔记,无其他用途,如有冒犯可联系本人删除


版权声明:本文为m0_50489432原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。