zoukankan      html  css  js  c++  java
  • SpringMVC相关注解

    GitHub:https://github.com/JDawnF/learning_note

    @Controller

    @Controller 注解,它将一个类标记为 Spring Web MVC 控制器 Controller 。

    @RestController 和 @Controller 的区别

    @RestController 注解,在 @Controller 基础上,增加了 @ResponseBody 注解,更加适合目前前后端分离的架构下,提供 Restful API ,返回例如 JSON 数据格式。当然,返回什么样的数据格式,根据客户端的 "ACCEPT" 请求头来决定。

    @RequestMapping

    @RequestMapping 注解,用于将特定 HTTP 请求方法映射到将处理相应请求的控制器中的特定类/方法。此注释可应用于两个级别:

    • 类级别:映射请求的 URL。

    • 方法级别:映射 URL 以及 HTTP 请求方法。

    @RequestMapping 和 @GetMapping 区别

    • @RequestMapping 可注解在类和方法上;@GetMapping 仅可注册在方法上。

    • @RequestMapping 可进行 GET、POST、PUT、DELETE 等请求方法;@GetMapping@RequestMapping 的 GET 请求方法的特例,目的是为了提高清晰度。

    返回 JSON 格式使用的注解:

    可以使用 @ResponseBody 注解,或者使用包含 @ResponseBody 注解的 @RestController 注解。

    当然,还是需要配合相应的支持 JSON 格式化的 HttpMessageConverter 实现类。例如,Spring MVC 默认使用 MappingJackson2HttpMessageConverter 。

    @PathVariable 注解与@RequestParam的区别

    @PathVariable 注解,是 Spring MVC 中有用的注解之一,它允许您从URI 读取值,比如查询参数。它在使用 Spring 创建 RESTful Web 服务时特别有用,因为在 REST 中,资源标识符是 URI 的一部分。

    @RequestParam注解和@PathVariable注解的区别,从字面上可以看出前者是获取请求里边携带的参数;后者是获取请求路径里边的变量参数。

    (例如:127.0.0.1/user/{userId}?userName=zhangshan,userId是路径上的变量,userName才是请求参数信息)

    1.@RequestParam注解

    @RequestParam有三个参数:

    value:参数名;

    required:是否必需,默认为true,表示请求参数中必须包含该参数,如果不包含抛出异常。

    defaultValue:默认参数值,如果设置了该值自动将required设置为false,如果参数中没有包含该参数则使用默认值。

    示例:@RequestParam(value = "userId", required = false, defaultValue = "1")

    2.@PathVariable注解

    当使用@RequestMapping URI占位符映射时,Url中可以通过一个或多个{xxxx}占位符映射,通过@PathVariable可以绑定占位符参数到方法参数中。

    例如:@PathVariable("userId") Long userId,@PathVariable("userName") String userName

    (注:Long类型可以根据需求自己改变String或int,Spring会自动做转换)

    @RequestMapping(“/user/{userId}/{userName}/query")

    参照 《Spring MVC 的 @RequestParam 注解和 @PathVariable 注解的区别》

    @RequestBody

    @requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。

    通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。

    前端通过post传数据过来,要用RequestBody注解。

  • 相关阅读:
    [LeetCode] 26 Remove Duplicates from Sorted Array
    归并排序
    插入排序
    选择排序
    冒泡排序
    单链表排序
    如何实现单链表反转
    Linux基础——centos 跳过管理员密码进行登录(单用户模式、救援模式)
    response.sendRedirect()与request.getRequestDispatcher().forward()区别
    json-lib——JsonConfig详细使用说明
  • 原文地址:https://www.cnblogs.com/baichendongyang/p/13235442.html
Copyright © 2011-2022 走看看