上一篇文章 IntelliJ IDEA 创建 Java Web 项目,我们已经学习了如何创建项目。我们根据该文章创建名为 chapter2-1
的项目。
Demo
的相关环境如下:
java
版本11
Spring Boot
版本2.7.12
- 基于
mac m1
开发
完成的项目目录结构如下图所示。
我们在 com.example.chapter21
下创建文件 User.java
和 UserController.java
,其中前者定义了用户的数据字段,后者为 controller
。具体解析如下。
定义字段
这里在 User.java
中简单定义用户的数据字段:
package com.example.chapter21;
import lombok.Data;
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
这里有 id
,name
和 age
三个字段,后面编写的 api
就是针对这些字段进行。
编写 API
我们在 UserController.java
文件中,编写增删改查的业务。因为没有引入数据库,所以我们这里使用 Map
来模拟,并通过 postman
进行验证。
添加用户:
@PostMapping("/")
public String postUser(@RequestBody User user) {
users.put(user.getId(), user);
return "success";
}
获取所有用户列表:
@GetMapping("/")
public List<User> getUserList() {
List<User> r = new ArrayList<User>(users.values());
return r;
}
更新指定的用户信息:
@PutMapping("/{id}")
public String putUser(@PathVariable Long id, @RequestBody User user) {
User u = users.get(id);
u.setName(user.getName());
u.setAge(user.getAge());
users.put(id, u);
return "success";
}
获取指定用户信息:
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
User u = users.get(id);
return u;
}
删除指定的用户:
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Long id) {
users.remove(id);
return "success";
}
完整的 UserController.java
文件的代码如下:
package com.example.chapter21;
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
@RequestMapping(value = "/users")
public class UserController {
// 创建线程安全的 map
static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());
// 获取用户列表
@GetMapping("/")
public List<User> getUserList() {
List<User> r = new ArrayList<User>(users.values());
return r;
}
// 添加用户
@PostMapping("/")
public String postUser(@RequestBody User user) {
users.put(user.getId(), user);
return "success";
}
// 获取指定的用户
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
User u = users.get(id);
return u;
}
// 更新指定的用户信息
@PutMapping("/{id}")
public String putUser(@PathVariable Long id, @RequestBody User 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.remove(id);
return "success";
}
}
参考
- Can't compile project when I'm using Lombok under IntelliJ IDEA
- IntelliJ IDEA 设置编码为utf-8编码
- Spring Boot 2.x基础教程:构建RESTful API与单元测试