实战--2

一、全局统一异常处理代码解析

java

运行

复制代码
@ControllerAdvice
public class AllExceptionHandler {
    @ExceptionHandler(Exception.class)
    public Result doException(Exception e){
        e.printStackTrace();
        return Result.fail(-999,"系统异常");
    }
}
  1. @ControllerAdvice:全局控制器增强注解,对所有控制器生效。
  2. @ExceptionHandler(Exception.class):捕获项目中所有未手动捕获的异常。
  3. 执行逻辑:打印异常堆栈信息,统一返回错误码 -999 与提示信息 系统异常

二、热门标签查询业务代码解析

java

运行

复制代码
@Override
public Result hots(int limit) {
    // 查询热度靠前的标签ID集合
    List<Long> tagIds = tagMapper.findHotsTagIds(limit);
    // 判断集合是否为空
    if (CollectionUtils.isEmpty(tagIds)){
        return Result.success(Collections.emptyList());
    }
    // 根据标签ID批量查询标签信息
    List<Tag> tagList = tagMapper.findTagsByTagIds(tagIds);
    return Result.success(tagList);
}
  1. 接收参数 limit,用于限定返回标签数量。
  2. 调用 Mapper 层方法,按热度查询对应数量的标签 ID。
  3. 做非空判断,无数据则返回空集合。
  4. 根据标签 ID 批量查询标签完整数据,封装结果并返回。
相关推荐
Rain的Java大神之路16 分钟前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
孙克旭_1 小时前
Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例
linux·运维·vue.js·spring boot·docker·dockerfile
2602_959960921 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题
Zane1994121 小时前
CAS 与原子类:Java 如何实现无锁编程
java·开发语言
略略略咯咯1 小时前
AI玩具-study
java
晓晓_za8986682 小时前
Geo 优化源码蒸馏词机制:地域词库构建与匹配逻辑详解
运维·tcp/ip·spring·缓存·ci/cd
xier_ran2 小时前
【infra之路】GPU 存储层次总结:L1 / L2 / HBM
java·网络·数据库
wuminyu3 小时前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
SWAGGY..3 小时前
【C++进阶】:(1)继承机制详解
java·jvm·c++
码匠许师傅4 小时前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试