news 2026/4/24 9:25:37

RESTful快速开发

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RESTful快速开发

简化前

package com.baidu.controller;importcom.baidu.domain.User;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.*;@ControllerpublicclassBookController{@RequestMapping(value="/books",method=RequestMethod.POST)@ResponseBodypublicStringsave(){System.out.println("user save... ");return"{'module':'user save'}";}@RequestMapping(value="/books/{id}",method=RequestMethod.DELETE)@ResponseBodypublicStringdelete(@PathVariableIntegerid){System.out.println("user delete ... "+id);return"{'module':'user save'}";}@RequestMapping(value="/books",method=RequestMethod.PUT)@ResponseBodypublicStringupdate(@RequestBodyUseruser){System.out.println("user update ... "+user);return"{'module':'user update'}";}@RequestMapping(value="/books/{id}",method=RequestMethod.GET)@ResponseBodypublicStringgetById(@PathVariableIntegerid){System.out.println("user getById... "+id);return"{'module':'user getById'}";}@RequestMapping(value="/books",method=RequestMethod.GET)@ResponseBodypublicStringgetAll(){System.out.println("user getAll ... ");return"{'module':'user getAll'}";}}

先把共有路径提取出来

package com.baidu.controller;importcom.baidu.domain.User;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.*;@Controller@RequestMapping("/books")publicclassBookController{@RequestMapping(method=RequestMethod.POST)@ResponseBodypublicStringsave(){System.out.println("user save... ");return"{'module':'user save'}";}@RequestMapping(value="/{id}",method=RequestMethod.DELETE)@ResponseBodypublicStringdelete(@PathVariableIntegerid){System.out.println("user delete ... "+id);return"{'module':'user save'}";}@RequestMapping(method=RequestMethod.PUT)@ResponseBodypublicStringupdate(@RequestBodyUseruser){System.out.println("user update ... "+user);return"{'module':'user update'}";}@RequestMapping(value="/{id}",method=RequestMethod.GET)@ResponseBodypublicStringgetById(@PathVariableIntegerid){System.out.println("user getById... "+id);return"{'module':'user getById'}";}@RequestMapping(method=RequestMethod.GET)@ResponseBodypublicStringgetAll(){System.out.println("user getAll ... ");return"{'module':'user getAll'}";}}

提取@ResponseBody

package com.baidu.controller;importcom.baidu.domain.User;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.*;@Controller@RequestMapping("/books")@ResponseBodypublicclassBookController{@RequestMapping(method=RequestMethod.POST)publicStringsave(){System.out.println("user save... ");return"{'module':'user save'}";}@RequestMapping(value="/{id}",method=RequestMethod.DELETE)publicStringdelete(@PathVariableIntegerid){System.out.println("user delete ... "+id);return"{'module':'user save'}";}@RequestMapping(method=RequestMethod.PUT)publicStringupdate(@RequestBodyUseruser){System.out.println("user update ... "+user);return"{'module':'user update'}";}@RequestMapping(value="/{id}",method=RequestMethod.GET)publicStringgetById(@PathVariableIntegerid){System.out.println("user getById... "+id);return"{'module':'user getById'}";}@RequestMapping(method=RequestMethod.GET)publicStringgetAll(){System.out.println("user getAll ... ");return"{'module':'user getAll'}";}}

合并@Controller和@ResponseBody为@RestController

设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作

package com.baidu.controller;importcom.baidu.domain.User;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.*;@RestController@RequestMapping("/books")publicclassBookController{@PostMappingpublicStringsave(){System.out.println("user save... ");return"{'module':'user save'}";}@DeleteMapping("/{id}")publicStringdelete(@PathVariableIntegerid){System.out.println("user delete ... "+id);return"{'module':'user save'}";}@PutMappingpublicStringupdate(@RequestBodyUseruser){System.out.println("user update ... "+user);return"{'module':'user update'}";}@GetMapping("/{id}")publicStringgetById(@PathVariableIntegerid){System.out.println("user getById... "+id);return"{'module':'user getById'}";}@GetMappingpublicStringgetAll(){System.out.println("user getAll ... ");return"{'module':'user getAll'}";}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 22:04:21

嘉立创EDA画PCB教程:STM32最小系统设计完整指南

从零开始打造STM32最小系统:嘉立创EDA实战全记录你是不是也曾在搜索“嘉立创eda画pcb教程”时,翻遍资料却仍被一堆术语绕晕?电源不稳、晶振不起、程序下不进去……明明照着电路连的,为什么就是跑不起来?别急。今天我们…

作者头像 李华
网站建设 2026/4/17 1:57:20

计算机毕业设计springboot新能源汽车产业链分析系统 基于Spring Boot的新能源汽车产业链数据分析平台设计与实现 Spring Boot框架下新能源汽车产业链综合管理系统开发

计算机毕业设计springboot新能源汽车产业链分析系统q997c9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着全球对环境保护和可持续发展的关注不断增加,新能源汽车…

作者头像 李华
网站建设 2026/4/23 12:37:21

Halcon变量控制类型、数据类型转换、字符串格式化、元组操作

*变量控制类型:Halcon的基础控制类型共5种:string(字符串)、integer(整数)、real(实数/小数)、tuple(元组)、handle(句柄)数据类型核心特性总结 : 1. 弱类型语言:Halcon无需声明变量类型,赋值即定义,自动识别类型 2. 类…

作者头像 李华
网站建设 2026/4/22 22:25:45

用DFS找出指定长度的简单路径

在图论和计算机科学中,寻找图中所有符合条件的路径是常见的问题之一。今天我们将探讨如何使用深度优先搜索(DFS)来找出一个有向图中从给定顶点出发的所有简单路径,这些路径的长度不超过指定的最大长度k。我们将通过一个具体的实例来展示这个过程,并讨论DFS的优势和一些需要…

作者头像 李华