news 2026/4/3 6:28:09

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/1 18:20:48

SpringBoot工程入门案例开发

SpringBoot简介 SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程 原生开发SpringMVC程序过程创建SpringBoot工程 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" …

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

Multisim参数扫描分析:深度剖析其配置技巧

Multisim参数扫描分析实战&#xff1a;从入门到精通的深度指南你有没有过这样的经历&#xff1f;为了调出一个理想的滤波器响应&#xff0c;手动改了十几遍电容值&#xff0c;每次都要重新运行仿真、切换窗口对比曲线&#xff0c;最后不仅眼睛累&#xff0c;还漏掉了关键的转折…

作者头像 李华
网站建设 2026/3/28 7:34:08

掌握 Xcode,实现移动开发的快速迭代

掌握 Xcode,实现移动开发的快速迭代 关键词:Xcode、移动开发、快速迭代、CI/CD、模块化开发、单元测试、性能优化 摘要:本文系统解析如何通过 Xcode 实现 iOS 移动开发的快速迭代。从 Xcode 核心架构与关键功能出发,详细阐述模块化开发、自动化构建、持续集成、测试驱动开发…

作者头像 李华
网站建设 2026/3/28 1:11:32

Keil生成Bin文件与底层驱动兼容性问题深度剖析

Keil生成Bin文件与底层驱动兼容性问题深度剖析从一个“神秘”的ADC故障说起上周三晚上十点&#xff0c;我收到产线同事的紧急消息&#xff1a;“新烧录的固件上电后ADC一直返回0&#xff0c;但用J-Link调试时一切正常。”这听起来像是典型的“薛定谔式Bug”——代码没错、逻辑通…

作者头像 李华
网站建设 2026/3/27 6:25:17

Keil4下载及安装系统学习:支持多芯片平台搭建

Keil4搭建多芯片开发平台&#xff1a;从安装到实战的完整指南 你有没有遇到过这样的场景&#xff1f;手头要同时维护一个老旧的C51项目&#xff0c;又要开发新的STM32产品线&#xff0c;结果发现IDE换来换去——Keil C51、IAR、Keil5来回切换&#xff0c;工程文件格式不兼容&a…

作者头像 李华
网站建设 2026/3/31 3:26:57

基于Java+SpringBoot+SSM乡村支教管理系统(源码+LW+调试文档+讲解等)/乡村教育支援系统/支教管理平台/乡村支教项目系统/农村支教管理系统/支教信息管理系统/乡村教师支援系统

博主介绍 &#x1f497;博主介绍&#xff1a;✌全栈领域优质创作者&#xff0c;专注于Java、小程序、Python技术领域和计算机毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2025-2026年最新1000个热门Java毕业设计选题…

作者头像 李华