Springmvc控制器中常用注解总结

码界觅云师
• 阅读 3115

每次用到的时候都需要查阅资料,现在整理下,方便记忆

1 @Controller

标识该类是一个控制器,Spring MVC会自动扫描标注了这个注解的类。

2 @RequesMapping

@RequestMapping将请求映射到控制器类和控制器中的方法上。通过匹配URL,HTTP method,请求参数,头和媒体类型,我们可以设置该请求的多种属性。同时,springmvc中还提供具体请求方法的映射方法,如下:

  • GetMapping
  • PostMapping
  • PutMapping 从客户端向服务器传送的数据取代指定的内容,即更新内容
  • DeleteMapping 请求服务器删除指定的页面
  • PatchMapping 用来更新局部资源

3 @PathVariable

从请求的URI变量中获取值,使用方法如下:

@GetMapping("/owners/{ownerId}/pets/{petId}")
public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId) {
    //...
}

也可以获取类上声明的URI变量,如下:

@Controller
@RequestMapping("/owners/{ownerId}")
public class OwnerController {

    @GetMapping("/pets/{petId}")
    public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId) {
        // ...
    }
}

需要强调的是,如果一个控制器类中存在多个URI变量的话,声明的变量名字不能重复!

4 @RequestParam

用来接收ContentType为x-www-form-urlencoded的请求参数,请求体格式为a=xxx&b=xxx
详解

5 @RequestBody

放在参数前,表示参数从request body中获取,而不是从地址栏获取,所以这肯定是接收一个POST请求的非a=b格式的数据,即Content-Type不为application/x-www-form-urlencoded类型的内容。


@RequestParam和@RequestBody的区别

  • @Requestparam用来接收ContentType为x-www-form-urlencoded的请求参数,请求体格式为a=xxx&b=xxx
  • @Requestbody需要自定义解析器来解析请求体内容。比如application/json,前端需要把参数转成json格式,后端一般用jackson来解析。当然你也可以自定义格式,只要你能解析就行。

6 @ResponseBody

@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。
作用:
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
何时使用
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用

详细内容


@RequestBody@ResponseBody的区别:
@ResponseBody
作用:@ResponseBody注解用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端。
@RequestBody
作用:@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json数据)转换为java对象并绑定到Controller方法的参数上。
详细介绍,有实际的例子共参考

7 @RestController

这个是Controller和ResponseBody的组合注解,表示@Controller标识的类里面的所有返回参数都放在response body里面。


参考
点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
springMVC笔记系列(8)——RequestParam注解
前面的文章介绍过注解@PathVariable,它能够为Rest风格的URL用占位符的方式传递一个参数,但是这个参数并不是真正意义上的请求参数。请求参数怎么处理是本文的主要内容。SpringMVC通过分析处理方法的签名,将HTTP请求信息绑定到处理方法的相应人参中。SpringMVC对控制器处理方法签名的限制是很宽松的,几乎可以按喜欢的任
Easter79 Easter79
3年前
springMVC
1.命令控制器            a.创建一个自定义的命令控制器,继承一个父类AbstractCommandController            b.在控制器中通过构造方法指定命令类,由框架负责包装实体对象package cn.internet.controller;import java.
Easter79 Easter79
3年前
SpringMVC从认识到细化了解
\TOC\首发日期:20181101SpringMVC的介绍<br介绍:SpringMVC是一个Web层的MVC框架SpringMVC是基于servlet来处理web请求的,所有的请求都是先经过核心servlet再转交给对应的控制器。它与spring同属
Wesley13 Wesley13
3年前
Spring3 MVC详解
DispatcherServlet 前置控制器 使用SpringMVC,配置DispatcherServlet是第一步。DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,S
Easter79 Easter79
3年前
Spring注解大全,汇总版
Spring使用的注解大全和解释注解解释@Controller组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。@Service组合注解(组合了@Component注解),应用在
Easter79 Easter79
3年前
SpringMVC中url映射到Controller
SpringMVC也是一种基于请求驱动的WEB框架,并且使用了前端控制器的设计模式。前端控制器就是DispatcherServlet控制器,只要满足web.xml文件中的【urlpattern】的规则,这个请求就会交给这个前端控制器(DispatcherServlet),然而前端控制器在收到请求后自己不进行任何处理,根据相应的【URL的映射规则】委托给其他
Stella981 Stella981
3年前
Spring MVC 解读——@RequestMapping (1)
SpringMVC解读——@RequestMapping    为了降低文章篇幅,使得文章更目标化,简洁化,我们就不例举各种@RequestMapping的用法等内容了.文章主要说明以下问题:1.Spring怎样处理@RequestMapping(怎样将请求路径映射到控制器类
Easter79 Easter79
3年前
SpringMVC学习(二)@Requestmapping映射和Rest风格
1、@RequestMapping1.1、@RequestMapping映射请求注解在SpringMVC中使用@RequestMapping注解可以为控制器指定处理哪些URL请求可以用于类上或者方法上类定义处:提供初步的请求映射信息。相对于WEB应用
Easter79 Easter79
3年前
Spring校验注解3:异常统一处理类
@ControllerAdvice该注解为统一异常处理的核心是一种作用于控制层的切面通知(Advice),该注解能够将通用的@ExceptionHandler、@InitBinder和@ModelAttributes方法收集到一个类型,并应用到所有控制器上该类中的设计思路:使用@ExceptionHandler注解捕获指定
Stella981 Stella981
3年前
Noark入门之协议映射
0x00消息控制器消息控制器,主要作用就是为每个模块提供消息处理的入口.这里的消息不仅仅是协议,还有内部指令,事件等等逻辑入口,这也是为了响应线程模型作出的一种支撑,只要入口在此消息控制器内,那必然走期望的线程调度。@Controller用于标识一个类为当前模块的消息控制器入口.@Controller(threadGroup
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
码界觅云师
码界觅云师
Lv1
江欲浮天去,山疑渡水来。
文章
3
粉丝
0
获赞
0