【SpringBoot详细教程】-06-Restful风格【持续更新】

news2024/9/30 12:23:16

====点个关注,不迷路=====

⾸先,回顾并详细说明⼀下在SSM中使⽤的 @Controller 、 @RestController 、 @RequestMapping 注解。如果您对SpringMVC不熟悉并且还没有尝试过快速⼊⻔案例,建议先看⼀下SSM与Restful相关的内容。

  • @Controller :修饰class,⽤来创建处理http请求的对象
  • @RestController :Spring4之后加⼊的注解,原来在 @Controller 中返回json需要@ResponseBody 来配合,如果直接⽤ @RestController 替代 @Controller 就不需要再配置 @ResponseBody ,默认返回json格式。
  • @RequestMapping :配置url映射

下⾯我们尝试使⽤Spring MVC来实现⼀组对User对象操作的RESTful API,配合注释详细说明在

SpringMVC中如何映射HTTP请求、如何传参、如何编写单元测试。

RESTful API具体设计如下:

实体类User代码如下:

package com.moxuan.boot_06_web.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private Integer age;
    private String name;
}

控制器类:UserController代码如下:

package com.moxuan.boot_06_web.controller;

import com.moxuan.boot_06_web.entity.User;
import org.springframework.web.bind.annotation.*;

import java.util.*;

@RestController
@RequestMapping("/users")
public class UserController {

    //	创建线程安全的Map
    static Map<Long, User> users	=	Collections.synchronizedMap(new HashMap<Long,	User>());

    static {
        users.put(1L,new User(1L,20,"刘亦菲"));
        users.put(2L,new User(2L,20,"赵丽颖"));
        users.put(3L,new User(3L,20,"杨幂"));
        users.put(4L,new User(4L,20,"刘诗诗"));
    }

    // 查询
    @GetMapping("/")
    public	List<User>	getUserList() {
        //	处理"/users/"的GET请求,⽤来获取⽤户列表
        //	还可以通过@RequestParam从⻚⾯中传递参数来进⾏查询条件或者翻⻚信息的传递
        List<User> r	=	new ArrayList<User>(users.values());
        return	r;
    }

    @PostMapping("/")
    public	String	postUser(User user) {
        //	处理"/users/"的POST请求,⽤来创建User
        //	除了@ModelAttribute绑定参数之外,还可以通过@RequestParam从⻚⾯中传递参数
        users.put(user.getId(),	user);
        return "success";
    }
    @GetMapping("/{id}")
    public	User	getUser(@PathVariable Long	id) {
        //	处理"/users/{id}"的GET请求,⽤来获取url中id值的User信息
        //	url中的id可通过@PathVariable绑定到函数的参数中
        return	users.get(id);
    }
    @PutMapping("/{id}")
    public	String	putUser(@PathVariable Long	id,User	user) {
        //	处理"/users/{id}"的PUT请求,⽤来更新User信息
        User	u	=	users.get(id);
        u.setName(user.getName());
        u.setAge(user.getAge());
        users.put(id,	u);
        return "success";
    }
    @DeleteMapping("/{id}")
    public	String	deleteUser(@PathVariable	Long	id) {
        //	处理"/users/{id}"的DELETE请求,⽤来删除User
        users.remove(id);
        return "success";
    }
}

使用Postman测试

  • 测试修改

  • 测试查询

  • 测试添加

  • 测试查询所有

  • 测试删除

更多教程:小破(B)站,墨轩大楼 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2179599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zynq7000系列中的Quad-SPI(四线制串行外设接口)Flash控制器编程指南

Zynq7000系列中的Quad-SPI&#xff08;四线制串行外设接口&#xff09;Flash控制器是一个功能强大的组件&#xff0c;它支持高速数据传输和多种配置模式。以下是基于Zynq7000系列的Quad-SPI Flash控制器编程指南&#xff0c;旨在帮助开发者了解如何配置和使用该控制器。 编程指…

医院配电系统谐波的分析及治理

七次谐波&#xff0c;流入电网。 4.计算机及UPS 目前大部分医院都是通过计算机实现运营和管理工作&#xff0c;计算机数量众多&#xff0c;计算机服务器配有UPS等备用电源&#xff0c;加之个人电脑的开关电源&#xff0c;都是产生谐波的电源。 3医院配电系统谐波设备的治理方…

【Golang】Go语言中时间time相关处理方法

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

微信广告任务平台 ajax_upload 任意文件上传漏洞

0x01 漏洞描述&#xff1a; 微信广告任务平台ajax_upload接口处存在任意文件上传漏洞&#xff0c;攻击者可利用该漏洞将恶意文件上传至服务器&#xff0c;进而可能实现远程代码执行、篡改网站内容或发动其他形式的攻击&#xff0c;严重危及系统与数据安全。 位于控制器中IndexC…

x-cmd pkg | tokei - 代码统计利器,助你快速了解项目进度

目录 简介首次用户技术特点竞品和相关项目进一步阅读 简介 tokei 是一个使用 Rust 编写的显示有关代码统计信息的命令行工具&#xff0c;可以分门别类的统计目录内的代码行数。 tokei 具有良好的跨平台性&#xff0c;可以在 Linux、macOS、Windows 等多种平台上安装运行。 首…

SU03T(语音识别播报模块)

SU03T&#xff08;语音识别播报模块&#xff09; 注意&#xff1a;学习模块的方法是最重要的 目录 SU03T&#xff08;语音识别播报模块&#xff09; 查找资料 - SU03T 配置固件 1、进入智能公元&#xff0c;并注册登入 2、点击对应的模块&#xff0c;创建产品 3、随便选…

软件测试|数据库常见面试题

在软件测试数据库的面试中&#xff0c;面试官通常会考察应聘者对数据库的理解、SQL语言的应用、数据库性能优化、以及数据库相关的技术栈和工具等方面的知识。以下是一些可能的面试问题及建议的回答思路&#xff1a; 1、什么是关系型数据库&#xff0c;主键&#xff0c;外键&am…

揭秘网络钓鱼:如何识破并防范这场数字时代的诈骗游戏

网络钓鱼是一种网络攻击&#xff0c;它利用伪装的电子邮件欺骗收件人提供信息、下载恶意软件或采取其他期望的行动。 网络钓鱼是网络害虫&#xff0c;自20世纪90年代初从暗网出现以来&#xff0c;至今仍危害全球。根据SlashNext的报告&#xff0c;2023年平均每天有31,000次网络…

SpringCloudAlibaba的nacos启动注册实现

首先安装nacos&#xff0c;注意看清楚版本号码&#xff0c;后面设置pom依赖的时候有用。 安装地址&#xff1a;Nacos 快速开始 | Nacos 官网 选择这里&#xff1a; 然后在这个跳转的页面中&#xff0c;找到你需要的版本&#xff0c;比如选择2.0.4 进入之后&#xff0c;选择你…

软考题-数据库2-数据模型/ER图/关系模式规范化

一、概念数据模型-ER图 1.概念数据模型-ER图的构件-属性的分类 属性分多值属性和单值属性&#xff0c;题目已经给出联系方式的值有手机电话和办公室电话&#xff0c;所以是多值属性 派生属性是由其他属性而来&#xff0c;年龄来自于出生年月 部门号是EMP表的外键二、关系模式 …

vue-element 表格组合查询 - fc-table-search 组件封装

开发目的 解决搜索form参数读取&#xff0c;配合异步请求&#xff0c;更新渲染数据&#xff1b;支持自适应高度&#xff0c;分页查询&#xff0c;搜索查询/重置。 额外提供formater类型&#xff1a;标签定义&#xff0c;金额&#xff0c;时间格式化&#xff0c;跨页勾选&#x…

Minstrel自动生成结构化提示,让AI为AI写提示词的多代理提示生成框架

在人工智能快速发展的今天&#xff0c;如何有效利用大型语言模型&#xff08;LLMs&#xff09;成为了一个普遍关注的话题。这是9月份的一篇论文&#xff0c;提出了LangGPT结构化提示框架和Minstrel多代理提示生成系统&#xff0c;为非AI专家使用LLMs提供了强大支持。 对于非人…

PHP人才机遇桥梁招聘求职全能系统小程序源码

人才机遇桥梁 —— 招聘求职全能系统全解析 &#x1f4bc;&#x1f680; &#x1f309; 搭建人才与机遇的桥梁 在这个竞争激烈的职场环境中&#xff0c;找到一份心仪的工作或招募到合适的人才&#xff0c;往往不是一件容易的事。但幸运的是&#xff0c;我们有了“人才机遇桥梁…

Hello-Java-Sec靶场搭建

安装环境&#xff1a;宝塔Linux面板 1.将靶场克隆到本地 git clone https://github.com/j3ers3/Hello-Java-Sec 2.安装maven yum install maven &#xff08;kali&#xff1a;apt install maven&#xff09; 3.安装成功后 mvn -v验证⼀下 4. 配置数据库连接&#xff0c;数据…

SysML图例-悬架作动器(Suspension Aactuator)

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>>

【Android】获取备案所需的公钥以及签名MD5值

目录 重要前提 获取签名MD5值 获取公钥 重要前提 生成jks文件以及gradle配置应用该文件。具体步骤请参考我这篇文章&#xff1a;【Android】配置Gradle打包apk的环境_generate signed bundle or apk-CSDN博客 你只需要从头看到该文章的配置build.gradle&#xff08;app&…

【议题征集 】上海站 nMeetup 将于十月份开启!

上海&#xff0c;作为我国的经济和金融中心&#xff0c;正迅速发展成为全球领先的科技创新城市。这座城市不仅拥有深厚的文化底蕴&#xff0c;还积极拥抱数字化转型&#xff0c;推动着数据库和人工智能基础设施的快速发展。第三站 nMeetup 我们将走进上海&#xff0c;本次活动由…

面向未来的设计:数字化转型时代的企业架构与建模革新

在数字化转型浪潮席卷全球的今天&#xff0c;企业架构&#xff08;Enterprise Architecture, EA&#xff09;与建模技术正成为引领未来业务发展的核心工具。企业如何设计面向未来的架构&#xff0c;不仅关乎技术的部署&#xff0c;更直接影响业务的战略定位和市场竞争力。《面向…

【PCL】Ubuntu22.04 安装 PCL 库

文章目录 前言一、更新系统软件包二、安装依赖项三、下载 PCL 源码四、编译和安装 PCL五、测试安装成功1、 pcd_write.cpp2、CMakeLists.txt3、build 前言 PCL&#xff08;Point Cloud Library&#xff09;是一个开源的大型项目&#xff0c;专注于2D/3D图像和点云处理。PCL为点…

创客匠人第二期“老蒋面对面”交流会圆满收官!

磅礴的大雨浇不灭奋斗的激情。9月24日&#xff0c;创客匠人第二期老蒋面对面—“创客匠人让知识变现不走弯路”内部大会在集美隆重举行。 本次内部大会旨在传递公司战略精神&#xff0c;深度探讨公司品牌传播的价值、方向和策略。这不仅是一次内部的交流与分享&#xff0c;更是…