尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

springboot_03

springboot_03 1. 更新用户基本信息路由PutMapping(/user/update)前端传递nickname、email等字段封装到 DTO后端用Validated开启参数校验使用ThreadLocal或 JWT 拦截器获取当前登录用户 IDService 层只更新该用户自己的信息避免越权2. 更新信息时的参数校验DTO 中字段如nickname、email上加NotBlank、EmailController 方法使用Validated RequestBody出现校验异常时统一由RestControllerAdvice全局异常处理器捕获返回格式化错误信息3. 更新用户头像本地存储前端通过FormData上传图片后端用MultipartFile接收使用UUID生成唯一文件名保留原扩展名保存到本地固定目录如/upload/把文件访问 URL 存入用户表avatar字段4. 修改用户密码前端提交原密码 新密码后端先通过用户 ID 查询出旧密码MD5 加密使用工具类DigestUtils.md5Hex()对比原密码验证通过则更新为新密码同样 MD5 加密后存储5. 新增文章分类路由PostMapping(/category)接收 DTO如name、alias对 DTO 使用Valid 分组Validated校验字段不能为空Service 层调用 Mapper 插入数据库返回Result.success()6. 查询分类列表路由GetMapping(/category)无需参数或带条件分页可选Service 层调用 Mapper 查询ListCategoryVOVO 可使用JsonFormat格式化时间字段如createTime、updateTime7. 获取分类详情路由GetMapping(/category/{id})根据 URL 路径参数接收idService 调用 Mapper 根据主键查询分类返回前端用于回显8. 修改文章分类路由PutMapping(/category)DTO 除了name、alias还需带id启用分组校验Validated(Update.class)Service 调用 Mapper 更新数据返回Result.success()9. 分类新增/修改 分组校验同一个 DTO 既可用于新增也可用于修改使用分组接口区分校验规则javapublic interface Add {}public interface Update {}NotNull(groups Update.class)表示仅在更新时必须带idController 根据操作调用对应分组10. 新增文章路由PostMapping(/article)前端提交title、content、coverImg、categoryId、stateDTO 使用NotBlank、NotNull、URL、Size限制长度、合法性自定义State校验字段只能是“已发布”或“草稿”Service 中自动填充createUser当前登录用户、createTime调用 Mapper 插入文章表11. 自定义注解 State新建注解State配套写校验器StateValidation implements ConstraintValidator校验器逻辑如果state不在允许列表则抛异常在 DTOstate字段上加State启用校验12. 文章分页查询 条件查询路由GetMapping(/article)参数pageNum、pageSize、可选categoryId、stateService 中使用PageHelper.startPage(pageNum, pageSize)Mapper 按条件动态 SQL 查询文章列表返回封装好的PageBeanArticleVO包含列表和总条数13. 文件上传本地路由PostMapping(/upload)接收前端FormData参数名需一致使用UUID生成唯一文件名避免覆盖file.transferTo(new File(uploadPath))存到本地返回访问 URL前端可回显图片
返回列表