千家信息网

springboot RESTful以及参数注解的示例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了springboot RESTful以及参数注解的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。spring
千家信息网最后更新 2026年11月02日springboot RESTful以及参数注解的示例分析

这篇文章主要介绍了springboot RESTful以及参数注解的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

springboot RESTful及参数注解使用

RESTful

Spring的复杂性不是来自于它处理的对象,而是来自于自身,不断演进发展的Spring会带来时间维度上复杂性,比如SpringMVC以前版本的@RequestMapping,到了新版本被下面新注释替代,相当于增加的选项:

@GetMapping@PostMapping@PutMapping@DeleteMapping@PatchMapping

说明

1、@GetMapping

@RequestMapping(method = RequestMethod.GET)的简写

作用:对应查询,表明是一个查询URL映射

2、@PostMapping

@RequestMapping(method = RequestMethod.POST)的简写

作用:对应增加,表明是一个增加URL映射

3、@PutMapping

@RequestMapping(method = RequestMethod.PUT)的简写

作用:对应更新,表明是一个更新URL映射

4、@DeleteMapping

@RequestMapping(method = RequestMethod.DELETE)的简写

作用:对应删除,表明是一个删除URL映射

5、@PatchMapping

Patch方式是对put方式的一种补充;

put方式是可以更新.但是更新的是整体.patch是对局部更新;

参数注解的使用

@PathVariable@RequestParam@RequestBody@ModelAttribute

说明

1. @PathVariable

获取路径参数。即url/{id}这种形式

@PathVariable绑定URI模板变量值

@PathVariable是用来获得请求url中的动态参数的

@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。//配置url和方法的一个关系@RequestMapping("item/{itemId}")

2.@RequestParam

获取查询参数。即url?name=这种形式

@RequestParam注解主要有哪些参数:

  • value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;

  • required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;

  • defaultValue:默认值,表示如果请求中没有同名参数时的默认值,例如:

public List getItemTreeNode(@RequestParam(value="id",defaultValue="0")long parentId)
3.@RequestBody

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

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

4.@ModelAttribute

在使用RESTful风格时,使用get请求,又想使用对象接收参数,就可以使用这个注解

不光适用于get请求,同样也适用于put和delete请求

springboot Restful使用记录

创建项目

通过spring官网创建项目

https://start.spring.io/

  • 项目名称取为studyRest

  • 项目依赖WEB

Rest组件使用

使用@RestController标记类为提供Restful服务的Contoller

@GetMapping为资源定位一部分,也就是url,对应http://localhost:8080/test

@RestControllerpublic class MyRestContoller1 {        @GetMapping("/test")        public Map getData() {                Map data = new HashMap();                data.put("id", "111");                data.put("name", "zhangsan");                return data;        }}

测试(这里使用浏览器测试,后续使用Postman工具)

@GetMapping关键字对应GET请求,也就是查询,请求还可以有参数,对应@PathVariable与@RequestParam注解

    @GetMapping("/test/{id}")        public Map getData2(@PathVariable String id, @RequestParam(required = false) String name) {                Map data = new HashMap();                data.put("id", id);                data.put("name", name);                return data;        }

测试,返回值为入参传入参数

Post类型,新增操作

新增使用@PostMapping描述URL

新增一般都会带有大量数据,一般都是使用@RequestBody注解封装参数

 @PostMapping("/test2/add")        public Map addData(@RequestBody Map data) {                return data;        }

测试

注意两点,不正确都会报错

  • 请求类型必须是POST

  • Content-type必须要设置为application/json,因为入参形式为JSON格式

更新与删除操作

使用上与Post一致,只是不同类型需要使用对应的主机

  • PUT:@PutMapping

  • DELETE:@DeleteMapping

  @PutMapping("/test2/update")        public Map updateData(@RequestBody Map data) {                return data;        }                @DeleteMapping("/test2/delete")        public Map deleteData(@RequestBody Map data) {                return data;        }

RequestMapping使用

RequestMapping是一个通用注解,包含上述所有操作

@RestController@RequestMapping(value = "/parent")public class RequestRestContoller {        @RequestMapping(value = "/get", method = RequestMethod.GET)        public Map get() {                Map data = new HashMap();                data.put("id", "111");                data.put("name", "zhangsan");                return data;        }                @RequestMapping(value = "/add", method = RequestMethod.POST)        public Map add() {                Map data = new HashMap();                data.put("id", "111");                data.put("name", "zhangsan");                return data;        }                @RequestMapping(value = "/update", method = RequestMethod.PUT)        public Map update() {                Map data = new HashMap();                data.put("id", "111");                data.put("name", "zhangsan");                return data;        }                @RequestMapping(value = "/delete", method = RequestMethod.DELETE)        public Map delete() {                Map data = new HashMap();                data.put("id", "111");                data.put("name", "zhangsan");                return data;        }}

上述还有贴在class上面的注解:@RequestMapping(value = "/parent"),如果是class上面的注解,那么方法上面的url需要加上class上面的注解

如:http://localhost:8080/parent/get或http://localhost:8080/parent/add

其中可以属于请求参数和响应数据类型

@RequestMapping(value = "/parent", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)

其中consumes 约束入参类型,produces 约束响应数据类型

测试Content-Type:text/plain报错,由于设置了JSON格式

支持哪些格式参考Media定义

org.springframework.http.MediaType

XML格式数据支持

这里扩展一下,返回XML格式数据

引入XML依赖包

                        com.fasterxml.jackson.dataformat                jackson-dataformat-xml        

测试类

@RestControllerpublic class DataRestContoller {        @RequestMapping(value = "/addJsonResponseXml", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_XML_VALUE)        public Map add(@RequestBody Map data) {                return data;        }}

测试

感谢你能够认真阅读完这篇文章,希望小编分享的"springboot RESTful以及参数注解的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

参数 注解 类型 测试 更新 数据 格式 作用 简写 篇文章 面的 项目 处理 查询 名字 形式 方式 方法 支持 示例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 哈尔滨大商圈互联网科技有限公司 科技金融是不是互联网金融 上海互联网科技有限公司 腾讯科技 互联网女皇 汇久创客互联网科技 广州凡科互联网科技 互联网科技logo设计 时间互联网络科技 互联网科技网站 科技大学互联网专业好不好 创业天下互联网科技有限公司 互联网对科技的发展 互联网科技公司有风险吗 乌苏新华互联网科技做什么的 互联网科技公司营业执照怎么办理 长沙互联网科技 银川新华互联网科技学校原画 北京品多多互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司 亿人帮互联网科技有限公司 互联网科技未来 齐家互联网科技 成都狮子座互联网科技 互联网科技公司招聘 知域互联网科技有限公司大骗子 山东有哪些互联网科技公司 每天都有哪些好的互联网科技 广州互联网高科技取餐柜 每日互联网科技新闻
0