当前位置:   article > 正文

http请求之springboot中多种注解的使用

http请求之springboot中多种注解的使用
见网页侧边目录树可索引查看

一、@PathVariable

注:{name} 与 注解配置使用
curl-linux

curl --location --request GET 'http://localhost:8090/test/requestTest/pathReq/aliens' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: <Content-Type>'
  • 1
  • 2
  • 3

后端

@GetMapping("pathReq/{name}")
public ResponseEntity pathReq(@PathVariable String name) {
    System.out.println("name: "+name);
    return ResponseEntity.success();
}
  • 1
  • 2
  • 3
  • 4
  • 5

二、@RequestParam

注:request对象(HttpServletRequest)与 @RequestParam注解都能获取到参数,需要对照名称获取
注:@RequestParam(name = "eye", required = false) 如果没有填写required=false属性,默认必填,若属性为可选项,需要显示设置为false
curl-linux

curl --location --request GET 'http://localhost:8090/test/requestTest/paramReq?name=<name>&name2=<name2>&eye=<eye>' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: <Content-Type>'
  • 1
  • 2
  • 3

后端

@GetMapping("paramReq")
public ResponseEntity paramReq(HttpServletRequest request, @RequestParam String name, @RequestParam String name2, @RequestParam(name = "eye", required = false) String color) {
    System.out.println("name: "+name);
    System.out.println("name2: "+name2);
    System.out.println("eye: "+color);
    System.out.println("req.name: "+request.getParameter("name"));
    System.out.println("req.name2: "+request.getParameter("name2"));
    System.out.println("req.color: "+request.getParameter("eye"));
    return ResponseEntity.success();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三、@RequestAttribute

注:请求参数预存 预存方法的触发会在每一次请求调用时都会执行,不论是哪一个api接口被调用,需注意
注:发起请求后先预存到request对象中,再通过@RequestAttribute获取对应属性名称的内容
curl-linux

curl --location --request GET 'http://localhost:8090/test/requestTest/afterReqAttrPreGet?name=<name>' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: <Content-Type>'
  • 1
  • 2
  • 3

后端

// 放置attr属性值
@ModelAttribute
public ResponseEntity personModelAttr(HttpServletRequest request) {
    request.setAttribute("myApplicationName", "fsx-application");
    return ResponseEntity.success();
}

@GetMapping("afterReqAttrPreGet")
public ResponseEntity afterReqAttrPreGet(@RequestAttribute("myApplicationName") String name, HttpServletRequest request) {
    System.out.println("myApplicationName: "+name);
    return ResponseEntity.success();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

总结

1. 后期继续更新

注:先做这3个注解的测试。还有@RequestBody是最常用的,这种也是非常简单。后期有更多使用方式就在这里继续更新了。

2. 多去理解原理

注:虽然注解好用,但是表面光鲜的背后还是离不开强大的支持。使用的java高级特性反射做后端。有兴趣可以进行阅读。后期还会对《spring技术内幕》做文章。有兴趣也可以参考阅读一下。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/341854
推荐阅读
相关标签
  

闽ICP备14008679号