SpringBoot 入门实验报告

实验目的

1.掌握 SpringBoot 项目的创建方法

2.理解 SpringBoot 项目结构

3.学会编写 REST 接口

4.学会使用 AI 工具辅助代码开发

5.理解 AI 生成代码的结构与逻辑

实验环境

开发工具: IntelliJ IDEA

JDK 版本: JDK 17

构建工具: Maven

AI 工具: 通义灵码

测试工具: 浏览器或postman

实验内容

第一部分:创建 SpringBoot 项目

  1. 使用 IDEA 创建项目

项目名称:springboot-ai-demo

项目结构:

springboot-ai-demo

├─ controller

├─ entity

├─ SpringbootAiDemoApplication

└─ resources

  1. 确保 Maven 项目成功导入,所有依赖已正确加载

第二部分:使用 AI 辅助开发 RESTful API

  1. 使用 AI 生成实体类

在 IDE 中向通义灵码输入 Prompt:

生成一个 Student 实体类,包含:id、name、age

AI 生成代码如下:

public class Student {

private Integer id;

private String name;

private Integer age;

}

Student 类在项目中属于哪一层?

答:Entity Layer

  1. 使用 AI 生成 Controller

向通义灵码输入 Prompt:

生成 StudentController,包含查询学生列表接口,返回 JSON 数据

AI 生成示例代码:

@RestController

@RequestMapping("/students")

public class StudentController {

@GetMapping

public List<Student> list() {

List<Student> list = new ArrayList<>();

list.add(new Student(1, "Tom", 20));

list.add(new Student(2, "Lucy", 21));

return list;

}

}

  1. 运行 Spring Boot 应用

找到主类 SpringbootAiDemoApplication,运行 main 方法启动应用。

打开浏览器访问:http://localhost:8080/students

观察返回的 JSON 数据:

{"id": 1, "name": "Tom", "age": 20}, {"id": 2, "name": "Lucy", "age": 21}

  1. 使用 AI 解释代码

选中代码,让通义灵码解释:

@RestController 的作用是什么?

AI 回答:核心定义

@RestController 是 Spring MVC/Spring Boot 框架中的核心注解,本质是 @Controller + @ResponseBody 的组合注解,用于标记一个类为「RESTful 风格的控制器」,主要作用是处理 HTTP 请求并直接返回 JSON/XML 等数据格式的响应(而非跳转页面)。

  1. 编写 Hello 接口

向通义灵码输入 Prompt:

生成 Hello 接口,访问路径 /hello,返回 Hello SpringBoot

AI 生成示例代码:

@GetMapping("/hello")

public String hello() {

return "Hello SpringBoot";

}

访问:http://localhost:8080/hello

第三部分:实验总结

请回答以下问题:

问题 1

SpringBoot 中 Controller 的作用是什么?

答:一、Controller 核心作用

在 SpringBoot 中,Controller(控制器)是前端与后端交互的 "中转站",也是分层架构中「控制层」的核心组件。你可以把它理解为:前端发送的所有请求(比如点击按钮、输入网址),都会先找到对应的 Controller,由它接收请求、整理参数,再调用业务层处理逻辑,最后把处理结果封装成响应返回给前端。

二、详细作用拆解(附代码示例)

  1. 接收前端请求

通过 @GetMapping/@PostMapping/@RequestMapping 等注解,映射前端请求的 URL 和请求方式(GET/POST/PUT/DELETE),并接收请求参数(路径参数、请求体、请求头、查询参数等)。

  1. 分发请求到业务层

Controller 不处理核心业务逻辑(比如计算、数据校验、数据库操作),只负责 "转发"------ 调用 Service 层的方法完成业务处理,是 "请求入口" 和 "业务逻辑" 之间的桥梁。

  1. 封装并返回响应

将业务层处理后的结果(如实体对象、集合、提示信息)封装成前端能识别的格式(JSON、页面、字符串等),返回给前端。

问题 2

AI 生成代码后是否需要人工检查?为什么?

答:一、结论

AI 生成代码后必须进行人工检查,这是保障代码质量、安全性和业务适配性的核心环节,AI 生成的代码仅能作为 "初稿",无法完全替代人工审核。

二、核心原因(附具体案例)

  1. AI 生成的代码可能存在逻辑错误或业务适配性问题

AI 只能基于训练数据和 Prompt 生成代码,但无法完全理解你的业务场景、项目规范和隐藏需求:

• 示例:你要求 AI 生成 "计算 50 以内奇数乘积" 的代码,AI 可能忽略 "数值溢出" 问题(用 int 而非 long long),或循环条件写错(i <= 50 包含 50 这个偶数);

• 再比如 AI 生成的 Student 实体类,可能缺少项目要求的 toString()、序列化注解(@Serializable),或字段类型不符合数据库设计(如 id 用 Integer 而非 Long)。

  1. AI 代码可能存在安全性漏洞

AI 不会主动考虑代码的安全风险,容易产生漏洞:

• 示例:AI 生成的 Controller 接口,可能未做参数校验(如接收用户输入的 age 未判断是否为负数)、未防范 SQL 注入(直接拼接 SQL 语句)、缺少接口权限控制;

• 这些漏洞会直接导致系统被攻击、数据泄露,必须人工排查。

  1. AI 代码可能不符合项目编码规范和最佳实践

每个团队 / 项目都有统一的编码规范(如命名规则、注释要求、分层架构),AI 生成的代码往往 "通用但不贴合":

• 示例:AI 生成的方法名可能是 get_student()(下划线命名),但你的项目要求驼峰命名(getStudent());

• 或 AI 生成的 Controller 直接写了业务逻辑,违反 "分层架构" 原则,需要人工调整。

  1. AI 可能生成冗余、低效或兼容性问题的代码

• 性能问题:AI 生成的循环逻辑可能冗余(比如嵌套循环可优化为单循环),或使用低效的数据结构(如用数组存储少量数据却用 LinkedList);

• 兼容性问题:AI 生成的 SpringBoot 代码可能使用高版本注解(如 @GetMapping 的新特性),但你的项目依赖低版本框架,导致运行报错;

• 冗余代码:AI 可能生成无意义的注释、未使用的变量,增加代码维护成本。

  1. AI 可能存在知识滞后或错误引用

AI 的训练数据有时间上限(比如无法覆盖 2025 年新发布的框架特性),或引用已废弃的 API / 方法:

• 示例:AI 生成的 Java 代码可能使用 Date 类(已被 Java 8 的 LocalDateTime 替代),或 SpringBoot 代码引用已移除的配置项。

问题 3

本实验最大的收获是什么?

答:一、核心收获(通用版,适配 AI 辅助编程 + SpringBoot 开发实验)

  1. 清晰认知 AI 编程的定位:工具辅助而非替代

实验中通过 AI 生成 Student 实体类、Controller 代码等操作,深刻理解到 AI 能大幅提升编码效率(快速产出基础代码),但必须通过人工检查(校验逻辑、规范、安全性)才能保证代码可用 ------ 明确了 "AI 做初稿,人工做质控" 的高效编程模式,避免过度依赖 AI。

  1. 掌握分层架构的落地逻辑,理解各层核心职责

从实体层(Entity)、控制层(Controller)的定义与作用,到各层间的协作关系(Controller 接收请求→调用 Service→依赖 Entity 传参),不再停留在 "理论分层",而是能结合实际代码理解 "为什么分层"(解耦、易维护)、"各层该做什么"(Controller 只做请求转发,不写业务逻辑),建立了规范的编程思维。

  1. 强化 "代码质量把控" 的核心意识

无论是成绩等级判定的边界值校验、50 以内奇数乘积的数值溢出处理,还是 AI 代码的人工审核,都意识到 "能运行的代码≠高质量代码"------ 编程不仅要实现功能,还要兼顾逻辑严谨性、安全性、规范性和业务适配性,形成了 "先校验、再实现、后优化" 的代码编写习惯。

二、精简版(适合实验报告 / 简短总结)

  1. 明确 AI 辅助编程的边界:AI 可提升编码效率,但人工检查(逻辑、安全、规范)是保障代码可用的必要环节;

  2. 深度理解 SpringBoot 分层架构中各层(Entity/Controller)的核心职责,掌握规范的代码组织方式;

  3. 建立 "功能实现 + 质量把控" 的双重编程思维,重视代码的业务适配性、安全性和可维护性。

总结

  1. 核心认知:AI 是编程效率工具,人工对代码的业务、安全、规范把控不可替代;

  2. 能力落地:从理论到实践掌握了 SpringBoot 分层架构的核心逻辑和代码编写规范;

  3. 思维升级:形成 "功能 + 质量" 双重导向的编程习惯,而非仅关注代码 "能运行"。

相关推荐
黄鸭部落格ShiYuYuanFang1 小时前
【分享】软考每日一练与解析-计组 8/12
java·开发语言
李广坤1 小时前
Agent 记忆系统详解:从"金鱼脑"到"过目不忘"的进化之路
后端
XWalnut1 小时前
LeetCode刷题 day37
java·数据结构·算法·leetcode
huaweichenai2 小时前
使用maven搭建sprint-boot
java·maven·sprint
zerozrc02 小时前
Java 方法调用的底层原理
java·后端
睡觉时不困4422 小时前
9.命令行通用规律:所有命令的底层语法
后端
星火10242 小时前
【LangChain4j系列01】LangChain4j 快速入门与核心概念
java·人工智能
Maxkim2 小时前
把智能体塞进浏览器侧边栏:我在 MV3 里踩的 5 个坑
前端·后端
SemiTris2 小时前
从Controller到Tomcat底层请求链路全解析
java·tomcat