news 2026/8/4 7:42:33

springboot_03

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
springboot_03

1. 更新用户基本信息

  • 路由:@PutMapping("/user/update")

  • 前端传递nicknameemail等字段封装到 DTO

  • 后端用@Validated开启参数校验

  • 使用ThreadLocal(或 JWT 拦截器)获取当前登录用户 ID

  • Service 层只更新该用户自己的信息,避免越权


2. 更新信息时的参数校验

  • DTO 中字段如nicknameemail上加@NotBlank@Email

  • Controller 方法使用@Validated @RequestBody

  • 出现校验异常时,统一由@RestControllerAdvice全局异常处理器捕获,返回格式化错误信息


3. 更新用户头像(本地存储)

  • 前端通过FormData上传图片,后端用MultipartFile接收

  • 使用UUID生成唯一文件名,保留原扩展名

  • 保存到本地固定目录(如/upload/

  • 把文件访问 URL 存入用户表avatar字段


4. 修改用户密码

  • 前端提交原密码 + 新密码

  • 后端先通过用户 ID 查询出旧密码(MD5 加密)

  • 使用工具类DigestUtils.md5Hex()对比原密码

  • 验证通过则更新为新密码(同样 MD5 加密后存储)


5. 新增文章分类

  • 路由:@PostMapping("/category")

  • 接收 DTO(如namealias

  • 对 DTO 使用@Valid+ 分组@Validated校验字段不能为空

  • Service 层调用 Mapper 插入数据库

  • 返回Result.success()


6. 查询分类列表

  • 路由:@GetMapping("/category")

  • 无需参数或带条件分页(可选)

  • Service 层调用 Mapper 查询List<CategoryVO>

  • VO 可使用@JsonFormat格式化时间字段(如createTimeupdateTime


7. 获取分类详情

  • 路由:@GetMapping("/category/{id}")

  • 根据 URL 路径参数接收id

  • Service 调用 Mapper 根据主键查询分类

  • 返回前端用于回显


8. 修改文章分类

  • 路由:@PutMapping("/category")

  • DTO 除了namealias还需带id

  • 启用分组校验(@Validated(Update.class)

  • Service 调用 Mapper 更新数据

  • 返回Result.success()


9. 分类新增/修改 + 分组校验

  • 同一个 DTO 既可用于新增也可用于修改

  • 使用分组接口区分校验规则:

```java

public interface Add {}

public interface Update {}

```

  • @NotNull(groups = Update.class)表示仅在更新时必须带id

  • Controller 根据操作调用对应分组


10. 新增文章

  • 路由:@PostMapping("/article")

  • 前端提交titlecontentcoverImgcategoryIdstate

  • DTO 使用@NotBlank@NotNull@URL@Size限制长度、合法性

  • 自定义@State校验字段只能是“已发布”或“草稿”

  • Service 中自动填充createUser(当前登录用户)、createTime

  • 调用 Mapper 插入文章表


11. 自定义注解 @State

  • 新建注解@State

  • 配套写校验器StateValidation implements ConstraintValidator

  • 校验器逻辑:如果state不在允许列表则抛异常

  • 在 DTOstate字段上加@State启用校验


12. 文章分页查询 + 条件查询

  • 路由:@GetMapping("/article")

  • 参数:pageNumpageSize、可选categoryIdstate

  • Service 中使用PageHelper.startPage(pageNum, pageSize)

  • Mapper 按条件动态 SQL 查询文章列表

  • 返回封装好的PageBean<ArticleVO>包含列表和总条数


13. 文件上传(本地)

  • 路由:@PostMapping("/upload")

  • 接收前端FormData,参数名需一致

  • 使用UUID生成唯一文件名避免覆盖

  • file.transferTo(new File(uploadPath))存到本地

  • 返回访问 URL,前端可回显图片

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 15:10:38

为何抗体定制服务是解决特定研究需求的关键策略?

一、抗体在生物医学研究与转化应用中的核心作用是什么&#xff1f;抗体&#xff0c;作为免疫系统响应特定抗原刺激而产生的高度特异性糖蛋白&#xff0c;是生命科学研究和生物医药开发中不可或缺的核心工具。凭借其精准的识别与结合能力&#xff0c;抗体被广泛应用于蛋白质组学…

作者头像 李华
网站建设 2026/7/14 15:10:37

老王-心若安稳事事从容

十句养心箴言 ——心若安稳&#xff0c;事事皆从容“心宽才能渡人&#xff0c;修心方能渡己。”&#x1f33f; 真正的从容&#xff0c; 不来自外界顺遂&#xff0c; 而源于—— 内心不乱。一、烦恼如尘&#xff0c;心静自消 ——打开心结&#xff0c;从“第一念”开始 困住你的…

作者头像 李华
网站建设 2026/7/14 15:10:50

SQL-忘记sa密码,如何安全的尝试旧密码,如何修改新密码

Q: 现是记住密码的状态&#xff0c;所以可以直接登录。但是操作员忘了sa的密码&#xff0c;想尝试一下sa密码&#xff0c;如果不正确仍可保证能登录进去&#xff0c;那么当前的密码状态是否要勾选记住密码。 当前是勾选了记住密码&#xff0c;但想验证 sa 密码&#xff0c;且要…

作者头像 李华
网站建设 2026/7/14 15:10:50

(9-4)多模态融合理论与方法:不确定性建模

9.4 不确定性建模在机器人感知、导航与决策过程中&#xff0c;传感器测量误差、环境动态变化以及模型不完善都会引入不确定性。为了保证系统的鲁棒性与稳定性&#xff0c;需要对状态和观测的不确定性进行建模与传播。高层融合中&#xff0c;不确定性建模不仅用于优化决策&…

作者头像 李华
网站建设 2026/7/14 15:10:43

mysql数据库常规操作2

对列表的增删改# 添加表列alter table 表名 add 新列名 类型&#xff08;长度&#xff09;[约束];#修改表列alter table 表名 change 旧列名 新列名 类型&#xff08;长度&#xff09;[约束];#修改表删除列alter table 表名 drop 列名;#重命名表名rename table 库名.表名 to 库…

作者头像 李华