注解在SpringMVC的实现中是非常重要的,在做项目是使用最多的也是注解,首先使用注解需要在spring.xml文件中配置注解支持才可以使用注解功能,配置内容如下:
<!--注解支持-->
<mvc:annotation-driven />
(1). @Controller
此注解使用在class上声明此类是一个Spring controller,说明该类时控制类,controller主要负责处理前端控制器(DispatcherServlet )发过来的请求,经过业务逻辑层处理之后封装层一个model,并将其返回给view进行展示。@controller注解通常用于类上,如果结合Thymeleaf模板使用的话,会返回一个页面。如果是前后端分离的项目,则使用@RestController,表明返回的是json格式数据。使用该类是需要在xml文件中配置注解扫描,代码如下:
<!--注解扫描-->
<context:component-scan base-package="com.controller"/>
(2). @RestController
该注解的源码如下,以次可以看出@RestController注解里面包含了@Controller注解和@ResponseBody注解,@ResponseBody 注解是将返回的数据结构转换为 JSON 格式,所以说可以这么理解:
@RestController = @Controller + @ResponseBody
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
/**
* The value may indicate a suggestion for a logical component name,
* to be turned into a Spring bean in case of an autodetected component.
* @return the suggested component name, if any
* @since 4.0.1
*/
String value() default "";
}
(3). @RequestParam
该注解的作用是把请求中指定名称的参数给控制器中的形参赋值。其中该注解有两个属性:
value:请求参数中的名称。
required:请求参数中是否必须提供此参数。默认值:true。表示必须提供,如果不提供将报错。
(4). @PathVariable
@PathVariable 注解主要用来获取 URL 参数,Spring Boot 支持 Restfull 风格的 URL,比如一个 GET 请求携带一个参数 id,我们将 id 作为参数接收,可以使用 @PathVariable 注解。
(5).@RequestMapping
@RequestMapping 是一个用来处理请求地址映射的注解,它可以用于类上,也可以用于方法上。用于类上的注解会将一个特定请求或者请求模式映射到一个控制器之上,表示类中的所有响应请求的方法都是以该地址作为父路径;方法的级别上注解表示进一步指定到处理方法的映射关系。
该注解有6个属性,一般在项目中比较常用的有三个属性:value、method 和 produces。 value
- 属性:指定请求的实际地址,value 可以省略不写;
- method 属性:指定请求的类型,主要有GET、PUT、POST、DELETE,默认为 GET。
- produces 属性:指定返回内容类型,如 produces = “application/json; charset=UTF-8”。