【注解】@RestController、@GetMapping、@PostMapping、@RequestMapping等RESTful风格的Web服务的注解

这篇具有很好参考价值的文章主要介绍了【注解】@RestController、@GetMapping、@PostMapping、@RequestMapping等RESTful风格的Web服务的注解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、映射 HTTP 请求的处理方法

1、@RestController:

@RestController 是 Spring 4.0 引入的一个注解,它是 @Controller@ResponseBody 的组合。
用于标识一个类,表示这个类是一个控制器,并且其中的方法会返回 JSON 格式的数据。通常用于构建 RESTful API。

@RestController
public class MyController {
    // Controller methods
}

2、@RequestMapping:

@RequestMapping 用于映射 HTTP 请求到控制器的处理方法。
可以用在类级别和方法级别。在类级别上设置的路径会与方法级别的路径拼接起来。
可以指定请求的方法(GETPOST等)、路径、参数等。

@Controller
@RequestMapping("/example")
public class MyController {
    @RequestMapping("/path")
    public String myMethod() {
        // Method implementation
        return "viewName";
    }
}
  • 指定单个请求方法:

    @RequestMapping(value = "/example", method = RequestMethod.GET) 
    public String handleGetRequest() {
        // 处理GET请求
        return "GET response"; 
    } 
    

    上面的例子中,handleGetRequest 方法只处理HTTP GET请求。

  • 指定多个请求方法:

    @RequestMapping(value = "/example", method = {RequestMethod.GET, RequestMethod.POST}) 
      public String handleGetOrPostRequest() {
          // 处理GET或POST请求
          return "GET or POST response"; 
      } 
    

    在 method 属性中使用数组,可以指定多个请求方法。

  • 传参
    @RequestMapping 注解通常不直接支持在运行时动态地传递参数。 @RequestMapping
    注解是一个元注解,它用于组合其他注解,而这些其他注解(例如
    @RequestParam@PathVariable)才提供了在运行时动态获取请求参数的功能。例如

    @RequestMapping(value = "/example", method = RequestMethod.GET) 
    public String handleRequest(@RequestParam String paramName) {
        return "Response with parameter: " + paramName; 
    }
    

3、@GetMapping:

@GetMapping@RequestMapping(method = RequestMethod.GET) 的缩写。用于处理 HTTP GET 请求的方法级注解。

@Controller
@RequestMapping("/example")
public class MyController {
    @GetMapping("/path")
    public String myMethod() {
        // Method implementation
        return "viewName";
    }
}

4、@PostMapping:

@PostMapping@RequestMapping(method = RequestMethod.POST) 的缩写。用于处理 HTTP POST 请求的方法级注解。

@Controller
@RequestMapping("/example")
public class MyController {
    @PostMapping("/path")
    public String myMethod() {
        // Method implementation
        return "viewName";
    }
}

这些注解一起使用,可以创建具有清晰结构的RESTful风格的控制器。@RequestMapping 提供了灵活的选项,而 @GetMapping@PostMapping 则是对特定 HTTP 方法的简化表示。@RestController 则简化了 @Controller@ResponseBody 的组合,使代码更加简洁。

二、处理了参数的注解

下面是一个简单的例子,演示了如何结合使用 @RequestMapping、@PathVariable@RequestParam

@RestController
@RequestMapping("/example")
public class ExampleController {

    @GetMapping("/path/{id}")
    public String handlePathWithPathVariable(@PathVariable Long id) {
        return "Response from path with id: " + id;
    }

    @GetMapping("/query")
    public String handleQueryParameter(@RequestParam String param) {
        return "Response from query parameter: " + param;
    }

    @PostMapping("/body")
    public String handleRequestBody(@RequestBody YourRequestBodyClass requestBody) {
        return "Response from request body: " + requestBody.toString();
    }
}

在这个例子中:

@GetMapping("/path/{id}") 使用了@PathVariable 来获取路径中的变量 id 的值。
@GetMapping("/query") 使用了 @RequestParam 来获取请求中的查询参数。
@PostMapping("/body") 使用了 @RequestBody 来获取请求体中的数据。
这种结合使用的方式使得你可以方便地从不同的位置获取请求参数,根据请求的不同部分,如路径、查询参数或请求体来进行处理。

@RequestParam@PathVariable、和 @RequestBody 是 Spring MVC 中用于获取请求参数的三个常用注解,它们分别用于不同的场景:

1、@RequestParam:

用于从请求的查询参数中获取值。通常用于处理表单提交或URL中的查询参数。

@RequestMapping("/example")
public String handleRequest(@RequestParam String paramName) {
    return "Response with parameter: " + paramName;
}

请求路径:/example?paramName=value

2、@PathVariable:

用于从请求路径中获取值。通常用于处理 RESTful 风格的URL,其中某些值是路径变量。

@RequestMapping("/example/{id}")
public String handleRequest(@PathVariable Long id) {
    return "Response with id: " + id;
}

请求路径:/example/123

3、@RequestBody:

用于从请求体中获取数据。通常用于处理 POST 或 PUT 请求中的 JSON 数据。

@RequestMapping(value = "/example", method = RequestMethod.POST, consumes = "application/json")
public String handleRequest(@RequestBody YourRequestBodyClass requestBody) {
    return "Response with request body: " + requestBody.toString();
}

在这里,YourRequestBodyClass 应该是一个与请求体JSON格式匹配的Java类。Spring会自动进行反序列化。

4、总结一下:

@RequestParam 用于获取请求的查询参数。
@PathVariable 用于获取请求路径中的变量。
@RequestBody 用于获取请求体中的数据。
这三个注解通常根据请求的类型和参数位置来选择使用。根据具体的业务需求,你可以选择其中的一个或多个来获取请求参数。文章来源地址https://www.toymoban.com/news/detail-795328.html

到了这里,关于【注解】@RestController、@GetMapping、@PostMapping、@RequestMapping等RESTful风格的Web服务的注解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot中的@GetMapping注解,如何使用

    Spring Boot是一个流行的Java框架,它提供了许多方便的注解和工具,使得Web应用程序的开发变得更加容易。其中,@GetMapping注解是Spring Boot中最常用的注解之一,它可以帮助开发者定义和处理HTTP GET请求。 @GetMapping注解可以用于类和方法上,用于定义HTTP GET请求的URL路径。当客户

    2024年02月11日
    浏览(47)
  • 【SpringMVC】@RequestMapping注解(详解)

    SpringMVC汇总: SpringMVC笔记汇总 从注解名称上我们可以看到, @RequestMapping 注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。 SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。 @RequestMapping 标识一个类:设置映射请

    2024年02月10日
    浏览(39)
  • SpringMVC之@RequestMapping注解

    @RequestMapping注解 (1)@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。 (2)SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。 (3)在SpringMVC中如何被使用:浏览器发送请求,若请求地址符合前端控

    2024年02月12日
    浏览(51)
  • 【SpringMVC】二、RequestMapping注解

    ReqeustMapping实现的是将请求与处理请求的控制器方法进行关联,建立映射,实现当请求传进来的时候,调用对应方法的情况。 注意RequestMapping的value值不可重复,即每个请求只能映射一个Controller类的方法。 若@RequestMapping定义在类上,表示映射请求的初始信息 @RequestMapping定义在

    2024年02月04日
    浏览(38)
  • 3、SpringMVC之RequestMapping注解

    创建名为spring_mvc_demo的新module,过程参考2.1节 细节请参考2.6节 从注解名称上可以看出,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系; SpringMVC 的前端控制器(DispatcherServlet)接收到请求后,就会在映射关系中找到对应的控制器方法来处

    2024年02月08日
    浏览(39)
  • 【Java EE】@RequestMapping注解

    在Spring MVC 中使⽤ @RequestMapping 来实现 URL 路由映射 ,也就是浏览器连接程序的作⽤ 我们先来看看代码怎么写 创建⼀个 TalkController 类,实现⽤⼾通过浏览器和程序的交互,具体实现代码如下: 这时候我们使用浏览器访问 http://127.0.0.1:8080/hi 就可访问 @RequestMapping 是Spring Web M

    2024年04月09日
    浏览(42)
  • 详解 SpringMVC 的 @RequestMapping 注解

    @RequestMapping是一个用于映射HTTP请求到处理方法的注解,在Spring框架中使用。它可以用于控制器类和处理方法上,用来指定处理不同URL路径的请求,并定义请求的方法(GET、POST等)、请求参数、请求头等。 @RequestMapping注解的常用属性包括 : value:用于指定URL路径,可以是单个

    2024年02月11日
    浏览(36)
  • Spring MVC-@RequestMapping注解详解

    目录 1、@RequestMapping注解的作用 2、@RequestMapping注解的位置 3、value属性 (1)基础用法 (3)路径中的占位符(重点) 4、method属性 5、params属性(了解) 6、headers属性(了解) @RequestMapping注解的作用,就是 将请求和处理请求的控制器方法关联起来 ,建立映射关系。 SpringMVC接

    2023年04月24日
    浏览(43)
  • Spring MVC 的RequestMapping注解

    作用:用于建立请求URL和处理请求方法之间的对应关系。 出现位置: 类上: 请求 URL的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。它出现的目的是为了使我们的 URL 可以按照模块化管理,例如: 账户模块: /account /add /account /update /account

    2024年02月02日
    浏览(38)
  • SpringMVC中@RequestMapping注解的详细说明

    @RequestMapping 是Spring MVC中一个用于映射HTTP请求和控制器方法之间关系的注解。它用于定义控制器方法如何响应特定的HTTP请求,包括GET、POST、PUT、DELETE等。以下是 @RequestMapping 注解的详细说明: 基本用法: @RequestMapping 用于注解一个控制器方法,指定该方法应该处理的请求路径

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包