在搭建完简单的springboot的后端整体框架后包括maven的基本框架为了处理和正常的异常反馈我们并不是直接在controller中直接返回数据处理和接受的结果因为这会出现以下两种情况一出现很多的冗余数值二出现数据库泄露的危机因此我们需要在controller层以及前端之间增加一层安全层规划输出以及保护数据库的内容改造前 前端发送 Controller { title: 买菜, → Task 对象 priority: HIGH } id null ← 不该有 title 买菜 description null status null ← 不该有 priority HIGH createdAt null ← 不该有 → 返回 Task 给前端 { id:1, createdAt:..., status:TODO, ... } 全暴露出去了 改造后 前端发送 Controller { title: 买菜, 1. CreateTaskRequest 只接收 priority: HIGH } title 买菜 priority HIGH (枚举) Valid 校验字段合法性 2. Service 转成 Task Model 3. 返回前 TaskResponse.from() 只输出 { id:1, title:买菜, priority:HIGH } 干净只返回该返回的所以我增加了一层dto正常反馈输出以及exception层处理异常内容并且返回我自己规定好的格式以便于后续开发的便利性能直接明显的读出代码发生错误的地方这是其中的部分代码package com.agent.dto; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; public class CreateTaskRequest { NotBlank(message 任务标题不能为空) Size(min 2, max 100, message 标题长度必须在 2-100 之间) private String title; Size(max 500, message 描述不能超过 500 字) private String description; NotNull(message 优先级不能为空) private Priority priority; // 枚举HIGH, MEDIUM, LOW // Getter / Setter public String getTitle() { return title; } public void setTitle(String title) { this.title title; } public String getDescription() { return description; } public void setDescription(String description) { this.description description; } public Priority getPriority() { return priority; } public void setPriority(Priority priority) { this.priority priority; } }源代码和整体指导文档我放在了wanlte/agent
后端的异常和保护机制
发布时间:2026/6/11 2:51:26
在搭建完简单的springboot的后端整体框架后包括maven的基本框架为了处理和正常的异常反馈我们并不是直接在controller中直接返回数据处理和接受的结果因为这会出现以下两种情况一出现很多的冗余数值二出现数据库泄露的危机因此我们需要在controller层以及前端之间增加一层安全层规划输出以及保护数据库的内容改造前 前端发送 Controller { title: 买菜, → Task 对象 priority: HIGH } id null ← 不该有 title 买菜 description null status null ← 不该有 priority HIGH createdAt null ← 不该有 → 返回 Task 给前端 { id:1, createdAt:..., status:TODO, ... } 全暴露出去了 改造后 前端发送 Controller { title: 买菜, 1. CreateTaskRequest 只接收 priority: HIGH } title 买菜 priority HIGH (枚举) Valid 校验字段合法性 2. Service 转成 Task Model 3. 返回前 TaskResponse.from() 只输出 { id:1, title:买菜, priority:HIGH } 干净只返回该返回的所以我增加了一层dto正常反馈输出以及exception层处理异常内容并且返回我自己规定好的格式以便于后续开发的便利性能直接明显的读出代码发生错误的地方这是其中的部分代码package com.agent.dto; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; public class CreateTaskRequest { NotBlank(message 任务标题不能为空) Size(min 2, max 100, message 标题长度必须在 2-100 之间) private String title; Size(max 500, message 描述不能超过 500 字) private String description; NotNull(message 优先级不能为空) private Priority priority; // 枚举HIGH, MEDIUM, LOW // Getter / Setter public String getTitle() { return title; } public void setTitle(String title) { this.title title; } public String getDescription() { return description; } public void setDescription(String description) { this.description description; } public Priority getPriority() { return priority; } public void setPriority(Priority priority) { this.priority priority; } }源代码和整体指导文档我放在了wanlte/agent