后端的异常和保护机制
2026/6/11 2:51:15 网站建设 项目流程

在搭建完简单的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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询