当前位置: 首页 > web >正文

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

目录

📌 案例介绍

📦 技术栈:

📁 项目结构:

📑 代码详情

📌 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 基本结构与请求响应机制。


http://www.xdnf.cn/news/12719.html

相关文章:

  • LBE-LEX系列工业语音播报器|AGV语音提示器|工程车音乐报警器操作使用说明
  • 亚川科技IBMS集成管理平台:构建商业综合体智慧中枢
  • LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
  • 1-2 Linux-虚拟机(2025.6.7学习篇- win版本)
  • Android学习总结-GetX库常见问题和解决方案
  • 计算机组成与体系结构:补码数制一(Complementary Number Systems)
  • 振动力学:多自由度系统
  • 快速上手Linux全局搜索正则表达式(grep)
  • 分页查询的实现
  • 29、make_shared
  • GESP 二级复习参考 A
  • 大话软工笔记—需求调研概述
  • Spring Boot 数据访问三剑客:JdbcTemplate、JPA 和 MyBatis 的对决与选择指南
  • 如何判断当前web页面是在钉钉内部打开的?
  • ubuntu服务器件如何配置python环境并运行多个python脚本
  • Xilinx FPGA 重构Multiboot ICAPE2和ICAPE3使用
  • 【LLM】fast-api 流式生成测试
  • MS358A 低功耗运算放大器 车规
  • similarsites网页版入口,一键查询相似网站
  • 露亦如电 · 时之沙 | 让遗憾在灰烬里随风而去
  • 2025 年 Java 核心技术全面升级与深度应用解析
  • 第19节 Node.js Express 框架
  • 平面方程在不同坐标系下的变换与平移
  • Parameter ‘XXX‘ not found. Available parameters are [list, param1]
  • 智慧零售管理中的客流统计与属性分析
  • PL0语法,分析器实现!
  • pikachu靶场通关笔记20 SQL注入03-搜索型注入(GET)
  • 【计算机组成原理】计算机硬件的基本组成、详细结构、工作原理
  • Redis线程安全深度解析:单线程模型的并发智慧
  • [特殊字符] 深入理解 Linux 内核进程管理:架构、核心函数与调度机制