JavaWeb基础入门 — SpringBoot Web 案例详解

发布于:2025-06-09 ⋅ 阅读:(23) ⋅ 点赞:(0)

目录

📌 案例介绍

📦 技术栈:

📁 项目结构:

📑 代码详情

📌 User实体类(User.java)

📌 控制器类(UserController.java)

📌 启动类(Springwebdemo01Application.java)

📌 用户数据文件(user.txt)

📦 Maven依赖(pom.xml)

📊 程序运行效果

📌 总结


今天我们来写一个简单的 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 基本结构与请求响应机制。