
这次练习做的是一个比较基础的 Spring Boot 后端先写一个 HelloWorld 接口再用内存集合实现用户的增删改查最后在 Postman 里分别测试 GET、POST、PUT 和 DELETE。我用的环境是 JDK 17、Spring Boot 3.5.6、Maven 3.9.9 和 Postman。项目名是 L05ym主要代码放在 controller 和 entity 两个目录里。## 先完成 HelloWorld我在 HelloController 中写了 GET 和 POST 两个接口。参数没有传的时候姓名是袁梦年龄是 21。javaGetMapping(value /hello, produces text/plain;charsetUTF-8)public String helloGet(RequestParam(defaultValue 袁梦) String name,RequestParam(defaultValue 21) Integer age) {return Hello, Spring Boot! 我是 name 今年 age 岁。;}PostMapping(value /hello, produces text/plain;charsetUTF-8)public String helloPost(RequestParam(defaultValue 袁梦) String name,RequestParam(defaultValue 21) Integer age) {return Hello, Spring Boot! (POST) 我是 name 今年 age 岁。;}项目启动后用下面这个地址测试 GETtexthttp://localhost:8080/hello?name袁梦age21返回内容是textHello, Spring Boot! 我是袁梦今年 21 岁。这里我一开始遇到过中文乱码所以在映射中加上了 produces text/plain;charsetUTF-8。## 再写用户增删改查这次暂时没有连接 MySQL用户数据直接保存在内存集合中。项目每次启动时都会先放入一条“袁梦21岁”的数据。我使用的接口如下| 请求方式 | 请求地址 | 用途 || --- | --- | --- || GET | /user | 查询全部用户 || GET | /user?name袁梦 | 按姓名查询 || POST | /user?name张三age18 | 新增用户 || PUT | /user?name张三age22 | 修改年龄 || DELETE | /user?name张三 | 删除用户 |下面是新增用户的主要代码参数校验部分没有全部贴出javaPostMappingpublic synchronized ResponseEntity? add(RequestParam String name,RequestParam Integer age) {String normalizedName normalizeName(name);ResponseEntity? validationError validate(normalizedName, age);if (validationError ! null) {return validationError;}if (findByName(normalizedName) ! null) {return ResponseEntity.status(HttpStatus.CONFLICT).body(Map.of(message, 用户已存在 normalizedName));}User user new User(normalizedName, age);users.add(user);return ResponseEntity.status(HttpStatus.CREATED).body(user);}查询成功返回 200新增成功返回 201。姓名为空或者年龄不在 1150 之间时返回 400找不到用户时返回 404新增重名用户时返回 409。这样在 Postman 里看状态码时比较直观。## Postman 测试过程我把测试请求整理成了一个 Postman 集合文件在textpostman/L05ym-SpringBoot.postman_collection.json导入后按 01 到 09 的顺序运行即可。测试顺序是先访问 Hello 接口再查询默认用户然后新增张三、修改张三的年龄、查询修改结果、删除张三最后重新查询全部用户。测试时要注意两点第一Spring Boot 项目必须保持运行第二这里用的是内存数据重启项目后新增的数据会消失。## 练习结果这次把四种常用 HTTP 请求都实际跑了一遍也弄清楚了 GetMapping、PostMapping、PutMapping、DeleteMapping 和 RequestParam 的基本用法。项目中还写了 10 个自动测试用来检查默认参数、增删改查和错误状态码。代码仓库https://gitee.com/yuanmeng914/spring-boot