在学习跟工作中使用注解可以大大的简化配置文件的配置, 提升开发效率; 但是注解多了也面临一个相对比较尴尬的问题那就是难免会忘记; 出于此目的就总结了一部分SpringMVC的常用注解, 并对注解的使用跟作用做了一个粗略的概括, 可能会有不够全面甚至错误的地方, 欢迎指正;
1. @RequestMapping:
说明:RequestMapping是一个用来处理请求地址映射的注解(将请求映射到对应的控制器方法上面),可用于类或方法上。用于类 上,表示类中的所有响应请求的方法都是以该地址作为父路径。(当项目比较大,服务模块比较多,为了方便区分控制器中的 方法,可以通过类上加入该注解来进行区分)
属性:
value:指定请求的实际url(支持ant风格、可以含正则表达式、支持或关系)。
method:指定请求的method类型:GET、POST、PUT、DELETE。
params:指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求(headers的查看可通过浏览器--按F12--NetWork 进行查看Headers的信息
consumes:指定处理请求的提交内容类型(Content-Type)
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
2. RequestParam:
说明: 绑定单个页面请求过来额参数值, 用于将请求参数区数据映射到功能处理方法的参数上
属性:
value: 入参的请求参数的名字, 如password表示请求的参数区中的名字为password的参数的值将传入到方法中;
required: 是否必须, 默认是true, 表示请求中一定要有相应的参数, 否则会抛出异常;
defaultValue: 默认值, 如果请求参数中参数为null或" "的时候, 可以设置该参数的默认值;
3. PathVariable
说明:绑定URL的变量值,用于将请求URL中的变量映射到功能处理方法的参数上。
属性:
value:入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入。
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将抛出异常。
4. @ModelAttribute
说明:ModelAttribute可以应用在方法参数上或方法上,他的作用主要是当注解在方法参数上时会将注解的参数对象添加到Model 中;当注解在请求处理方法Action上时会将该方法变成一个非请求处理的方法,但其它Action被调用时会首先调用该方法。
属性:
value:绑定模型中的key。
binding:控制数据绑定,默认是true。
5. SessionAttributes
说明:在默认情况下,Model中的属性作用域是 request 级别是,也就是说,当本次请求结束后,Model中的属性将销毁。如果希望在多个请求中共享 Model中的属性,必须将其属性转存到 session 中,这样 Model的属性才可以被跨请求访问。
属性:
1、value:这是一个字符串数组,里面应写需要存储到session中数据的名称。
2、types:根据指定参数的类型,将模型中对应类型的参数存储到session中。
6. @Responsebody与@RequestBody
解释:(可以分开使用)
Responsebody:表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用。
RequestBody:将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
7. @Controller
解释:控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。
8. @RestController
该注解是@ResponseBody + @Controller的组合体 , 返回的则是return里面的内容;