news 2026/6/10 1:48:32

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/6/10 19:46:42

强化学习算法

摘要:强化学习算法是一类通过环境交互优化决策的机器学习方法,分为基于模型和无模型两种类型。基于模型算法(如动态规划、蒙特卡洛树搜索)先构建环境模型进行预测,具有较高样本效率但计算复杂;无模型算法&a…

作者头像 李华
网站建设 2026/6/4 5:56:17

STM32CubeMX打不开:端口或服务占用的深度讲解

STM32CubeMX打不开?别急,可能是这个端口被“劫持”了!你有没有遇到过这样的场景:刚打开电脑,兴致勃勃准备配置一个STM32项目,双击STM32CubeMX图标——结果……没反应?或者闪一下就没了&#xff…

作者头像 李华
网站建设 2026/6/9 21:46:07

51单片机点亮一个led灯的抗干扰操作指南

从点亮一颗LED开始:51单片机抗干扰设计的工程实战课你有没有遇到过这种情况——代码写得没错,电路也照着原理图连了,可LED就是不听话:时亮时不亮、微亮、闪烁频率乱跳,甚至单片机莫名其妙复位?别急&#xf…

作者头像 李华
网站建设 2026/6/10 14:38:03

前后端分离购物推荐网站系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

摘要 随着电子商务的快速发展,个性化购物推荐系统成为提升用户体验和商家销量的重要工具。传统购物网站往往采用前后端混合的开发模式,导致系统维护困难、扩展性差,且难以实现高效的个性化推荐功能。为了解决这些问题,本研究设计并…

作者头像 李华
网站建设 2026/6/10 14:10:08

Keil MDK下载安装过程中路径设置注意事项

Keil MDK 安装路径设置:一个被严重低估的嵌入式开发“地基工程”你有没有遇到过这样的情况?明明代码写得没问题,点击“Build”却弹出“Cannot find compiler ‘ARMCC’”;自动化脚本在同事电脑上跑得好好的,到了你的机…

作者头像 李华
网站建设 2026/6/10 19:26:15

STM32CubeMX下载后的第一个LED闪烁项目从零实现

从零开始点亮第一盏LED:STM32CubeMX实战入门全记录 你有没有过这样的经历?下载完STM32CubeMX,打开软件却不知道下一步该点哪里;好不容易生成了代码,编译烧录后LED却不亮……别担心,这几乎是每个嵌入式新手…

作者头像 李华