
实验目的1.掌握 SpringBoot 项目的创建方法2.理解 SpringBoot 项目结构3.学会编写 REST 接口4.学会使用 AI 工具辅助代码开发5.理解 AI 生成代码的结构与逻辑实验环境开发工具 IntelliJ IDEAJDK 版本 JDK 17构建工具 MavenAI 工具 通义灵码测试工具 浏览器或postman实验内容第一部分创建 SpringBoot 项目1. 使用 IDEA 创建项目项目名称springboot-ai-demo项目结构springboot-ai-demo├─ controller├─ entity├─ SpringbootAiDemoApplication└─ resources2. 确保 Maven 项目成功导入所有依赖已正确加载第二部分使用 AI 辅助开发 RESTful API1. 使用 AI 生成实体类在 IDE 中向通义灵码输入 Prompt生成一个 Student 实体类包含id、name、ageAI 生成代码如下public class Student {private Integer id;private String name;private Integer age;}Student 类在项目中属于哪一层答Entity Layer2. 使用 AI 生成 Controller向通义灵码输入 Prompt生成 StudentController包含查询学生列表接口返回 JSON 数据AI 生成示例代码RestControllerRequestMapping(/students)public class StudentController {GetMappingpublic ListStudent list() {ListStudent list new ArrayList();list.add(new Student(1, Tom, 20));list.add(new Student(2, Lucy, 21));return list;}}3. 运行 Spring Boot 应用找到主类 SpringbootAiDemoApplication运行 main 方法启动应用。打开浏览器访问http://localhost:8080/students观察返回的 JSON 数据[{id: 1, name: Tom, age: 20},{id: 2, name: Lucy, age: 21}]4. 使用 AI 解释代码选中代码让通义灵码解释RestController 的作用是什么AI 回答核心定义RestController 是 Spring MVC/Spring Boot 框架中的核心注解本质是 Controller ResponseBody 的组合注解用于标记一个类为「RESTful 风格的控制器」主要作用是处理 HTTP 请求并直接返回 JSON/XML 等数据格式的响应而非跳转页面。5. 编写 Hello 接口向通义灵码输入 Prompt生成 Hello 接口访问路径 /hello返回 Hello SpringBootAI 生成示例代码GetMapping(/hello)public String hello() {return Hello SpringBoot;}访问http://localhost:8080/hello第三部分实验总结请回答以下问题问题 1SpringBoot 中 Controller 的作用是什么答一、Controller 核心作用在 SpringBoot 中Controller控制器是前端与后端交互的 “中转站”也是分层架构中「控制层」的核心组件。你可以把它理解为前端发送的所有请求比如点击按钮、输入网址都会先找到对应的 Controller由它接收请求、整理参数再调用业务层处理逻辑最后把处理结果封装成响应返回给前端。二、详细作用拆解附代码示例1. 接收前端请求通过 GetMapping/PostMapping/RequestMapping 等注解映射前端请求的 URL 和请求方式GET/POST/PUT/DELETE并接收请求参数路径参数、请求体、请求头、查询参数等。2. 分发请求到业务层Controller 不处理核心业务逻辑比如计算、数据校验、数据库操作只负责 “转发”—— 调用 Service 层的方法完成业务处理是 “请求入口” 和 “业务逻辑” 之间的桥梁。3. 封装并返回响应将业务层处理后的结果如实体对象、集合、提示信息封装成前端能识别的格式JSON、页面、字符串等返回给前端。问题 2AI 生成代码后是否需要人工检查为什么答一、结论AI 生成代码后必须进行人工检查这是保障代码质量、安全性和业务适配性的核心环节AI 生成的代码仅能作为 “初稿”无法完全替代人工审核。二、核心原因附具体案例1. AI 生成的代码可能存在逻辑错误或业务适配性问题AI 只能基于训练数据和 Prompt 生成代码但无法完全理解你的业务场景、项目规范和隐藏需求• 示例你要求 AI 生成 “计算 50 以内奇数乘积” 的代码AI 可能忽略 “数值溢出” 问题用 int 而非 long long或循环条件写错i 50 包含 50 这个偶数• 再比如 AI 生成的 Student 实体类可能缺少项目要求的 toString()、序列化注解Serializable或字段类型不符合数据库设计如 id 用 Integer 而非 Long。2. AI 代码可能存在安全性漏洞AI 不会主动考虑代码的安全风险容易产生漏洞• 示例AI 生成的 Controller 接口可能未做参数校验如接收用户输入的 age 未判断是否为负数、未防范 SQL 注入直接拼接 SQL 语句、缺少接口权限控制• 这些漏洞会直接导致系统被攻击、数据泄露必须人工排查。3. AI 代码可能不符合项目编码规范和最佳实践每个团队 / 项目都有统一的编码规范如命名规则、注释要求、分层架构AI 生成的代码往往 “通用但不贴合”• 示例AI 生成的方法名可能是 get_student()下划线命名但你的项目要求驼峰命名getStudent()• 或 AI 生成的 Controller 直接写了业务逻辑违反 “分层架构” 原则需要人工调整。4. AI 可能生成冗余、低效或兼容性问题的代码• 性能问题AI 生成的循环逻辑可能冗余比如嵌套循环可优化为单循环或使用低效的数据结构如用数组存储少量数据却用 LinkedList• 兼容性问题AI 生成的 SpringBoot 代码可能使用高版本注解如 GetMapping 的新特性但你的项目依赖低版本框架导致运行报错• 冗余代码AI 可能生成无意义的注释、未使用的变量增加代码维护成本。5. AI 可能存在知识滞后或错误引用AI 的训练数据有时间上限比如无法覆盖 2025 年新发布的框架特性或引用已废弃的 API / 方法• 示例AI 生成的 Java 代码可能使用 Date 类已被 Java 8 的 LocalDateTime 替代或 SpringBoot 代码引用已移除的配置项。问题 3本实验最大的收获是什么答一、核心收获通用版适配 AI 辅助编程 SpringBoot 开发实验1. 清晰认知 AI 编程的定位工具辅助而非替代实验中通过 AI 生成 Student 实体类、Controller 代码等操作深刻理解到 AI 能大幅提升编码效率快速产出基础代码但必须通过人工检查校验逻辑、规范、安全性才能保证代码可用 —— 明确了 “AI 做初稿人工做质控” 的高效编程模式避免过度依赖 AI。2. 掌握分层架构的落地逻辑理解各层核心职责从实体层Entity、控制层Controller的定义与作用到各层间的协作关系Controller 接收请求→调用 Service→依赖 Entity 传参不再停留在 “理论分层”而是能结合实际代码理解 “为什么分层”解耦、易维护、“各层该做什么”Controller 只做请求转发不写业务逻辑建立了规范的编程思维。3. 强化 “代码质量把控” 的核心意识无论是成绩等级判定的边界值校验、50 以内奇数乘积的数值溢出处理还是 AI 代码的人工审核都意识到 “能运行的代码≠高质量代码”—— 编程不仅要实现功能还要兼顾逻辑严谨性、安全性、规范性和业务适配性形成了 “先校验、再实现、后优化” 的代码编写习惯。二、精简版适合实验报告 / 简短总结1. 明确 AI 辅助编程的边界AI 可提升编码效率但人工检查逻辑、安全、规范是保障代码可用的必要环节2. 深度理解 SpringBoot 分层架构中各层Entity/Controller的核心职责掌握规范的代码组织方式3. 建立 “功能实现 质量把控” 的双重编程思维重视代码的业务适配性、安全性和可维护性。总结1. 核心认知AI 是编程效率工具人工对代码的业务、安全、规范把控不可替代2. 能力落地从理论到实践掌握了 SpringBoot 分层架构的核心逻辑和代码编写规范3. 思维升级形成 “功能 质量” 双重导向的编程习惯而非仅关注代码 “能运行”。