内容关键词:Controller 注解类型、RequestMapping 注解类型
知识来源: 720科技(张森鹏)、Spring MVC学习指南(第2版)
使用基于注解的控制器的几个优点。其一,一个控制器类可以处理多个动作(而实现了Controller 接口的一个控制器只能处理一个动作)。这就允许将相关的操作写在同一个控制器类中,从而减少应用程序中类的数量。其二,基于注解的控制器的请求映射不需要存储在配置文件中。使用 RequestMapping 注释类型,可以对一个方法进行请求处理。
Controller 注解类型:org.springframework.stereotype.Controller注解类型用于指示 Spring类的实例是一个控制器。
Spring 使用扫描机制来找到应用程序中所有基于注解的控制器类。为了保证 Spring 能找到你的控制器,需要完成两件事情。首先,需要在 Spring MVC 的配置文件中声明 spring- context,如下所示:
<beans
...
xmlns:context="http://www.springframework.org/schema/context"
...
>
然后,需要应用<component-scan/>元素,如下所示:
<context:component-scan base-package="basePackage"/>
请在<component-scan/>元素中指定控制器类的基本包。例如,若所有的控制器类都在
com.example.controller 及其子包下,则需要写一个如下所示的<component-scan/>元素:
<context:component-scan base-package="com.example.controller"/>
RequestMapping 注解类型:要让Spring 知道用哪一种方法来处理它的动作,需要使用 org.springframework.web.bind.annotation.RequestMapping 注解类型映射的 URI 与方法。
RequestMapping 注解类型的作用同其名字所暗示的:映射一个请求和一种方法。可以使用@RequestMapping 注解一种方法或类。
一个采用@RequestMapping注解的方法将成为一个请求处理方法,并由调度程序在接收到对应URL 请求时调用。
value 属性是 RequestMapping 注释的默认属性,因此,若只有唯一的属性,则可以省略属性名称。如果有多个属性时,就必须写入 value 属性名称。
RequestMapping 除了具有 value 属性外,还有其他属性。例如,method 属性用来指示该方法仅处理哪些 HTTP 方法。如果没有指定 method 属性值,则请求处理方法可以处理任意 HTTP 方法。
相关参考材料:Spring MVC学习指南(第2版)