目录
📌 启动类(Springwebdemo01Application.java)
今天我们来写一个简单的 Spring Boot Web 项目案例,帮助大家熟悉 SpringBoot 中 @RestController
、请求映射、数据读取和返回 JSON 数据的基本操作。
📌 案例介绍
我们要做的这个小案例是:
创建一个 SpringBoot Web 项目
通过
@RestController
暴露一个/list
接口从资源文件
user.txt
中读取用户数据将数据封装成
User
对象集合并返回(JSON 格式)
📦 技术栈:
语言:Java
框架:Spring Boot
工具类库:Hutool(简化IO操作)
构建工具:Maven
📁 项目结构:
springwebdemo01/
├── src/main/java/org/gdcp/springwebdemo01/
│ ├── Controller/
│ │ └── UserController.java
│ ├── pojo/
│ │ └── User.java
│ └── Springwebdemo01Application.java
├── src/main/resources/
│ └── user.txt
└── pom.xml
📑 代码详情
📌 User实体类(User.java)
路径:src/main/java/org/gdcp/springwebdemo01/pojo/User.java
package org.gdcp.springwebdemo01.pojo;
import java.time.LocalDateTime;
public class User {
private Integer id;
private String username;
private String password;
private String name;
private Integer age;
private LocalDateTime updateTime;
public User(Integer id, String username, String password, String name, Integer age, LocalDateTime updateTime) {
this.id = id;
this.username = username;
this.password = password;
this.name = name;
this.age = age;
this.updateTime = updateTime;
}
// 省略 getter 和 setter,可以用 Lombok 或自己生成
}
📌 控制器类(UserController.java)
路径:src/main/java/org/gdcp/springwebdemo01/Controller/UserController.java
package org.gdcp.springwebdemo01.Controller;
import cn.hutool.core.io.IoUtil;
import org.gdcp.springwebdemo01.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@RestController
public class UserController {
@RequestMapping("/list")
public List<User> lists() {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt");
ArrayList<String> lines = IoUtil.readLines(in, StandardCharsets.UTF_8, new ArrayList<>());
List<User> userList = lines.stream().map(line -> {
String[] parts = line.split(",");
Integer id = Integer.parseInt(parts[0]);
String username = parts[1];
String password = parts[2];
String name = parts[3];
Integer age = Integer.parseInt(parts[4]);
LocalDateTime updateTime = LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
return new User(id, username, password, name, age, updateTime);
}).toList();
return userList;
}
}
📌 启动类(Springwebdemo01Application.java)
路径:src/main/java/org/gdcp/springwebdemo01/Springwebdemo01Application.java
package org.gdcp.springwebdemo01;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Springwebdemo01Application {
public static void main(String[] args) {
SpringApplication.run(Springwebdemo01Application.class, args);
}
}
📌 用户数据文件(user.txt)
路径:src/main/resources/user.txt
1,zhangsan,123456,张三,23,2024-06-01 10:00:00
2,lisi,654321,李四,25,2024-06-02 11:30:00
3,wangwu,abcdef,王五,22,2024-06-03 14:15:00
📦 Maven依赖(pom.xml)
记得在 pom.xml
加上 Hutool 依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.25</version>
</dependency>
📊 程序运行效果
启动项目,访问浏览器或 Postman 打开:
http://localhost:8080/list
返回结果(JSON):
[
{
"id": 1,
"username": "zhangsan",
"password": "123456",
"name": "张三",
"age": 23,
"updateTime": "2024-06-01T10:00:00"
},
{
"id": 2,
"username": "lisi",
"password": "654321",
"name": "李四",
"age": 25,
"updateTime": "2024-06-02T11:30:00"
},
{
"id": 3,
"username": "wangwu",
"password": "abcdef",
"name": "王五",
"age": 22,
"updateTime": "2024-06-03T14:15:00"
}
]
📌 总结
这就是一个最简单的 SpringBoot Web 项目案例:
一个
@RestController
控制器从
user.txt
读取数据转换为 JavaBean 集合
返回 JSON 格式数据
适合新手练手,了解 SpringBoot 的 Web 基本结构与请求响应机制。