1. JEECG Boot 注解体系概览
在JEECG Boot这个基于Spring Boot的企业级快速开发框架中,注解系统是其核心设计之一。作为一个深度使用JEECG Boot的开发老手,我发现框架通过分层注解设计,将日志记录、权限控制、API文档生成等横切关注点优雅地解耦。这种设计让业务代码保持简洁的同时,又能获得完善的基础功能支持。
框架中的注解主要分为三类:
- 核心功能注解:如
@AutoLog这类JEECG自定义注解,提供框架特有的增强功能 - 标准化注解:如Swagger的
@Operation,遵循行业通用规范 - 基础架构注解:如Spring的
@DeleteMapping,构建基本的Web服务能力
这三类注解协同工作,形成了JEECG Boot独特的开发体验。下面我将结合多年实战经验,详细解析这些注解的妙用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 日志注解 @AutoLog 深度解析
2.1 注解配置与使用
@AutoLog是JEECG Boot中最实用的自定义注解之一。它的标准用法如下:
java复制@AutoLog(value = "订单管理-创建订单", operateType = OperateType.ADD)
public Result createOrder(@RequestBody OrderDTO dto) {
// 业务逻辑
}
关键参数说明:
value:操作描述,建议采用"模块-操作"的格式,便于后续检索operateType:操作类型枚举,支持ADD/UPDATE/DELETE/QUERY等标准操作
经验之谈:value的命名要遵循项目统一规范,我们团队约定采用"模块名-子模块-操作"三级结构,如"oms-order-create"。
2.2 实现原理剖析
这个注解背后的魔法是通过Spring AOP实现的。框架中有一个LogAspect切面类,其核心逻辑如下:
java复制@Aspect
@Component
public class LogAspect {
@Around("@annotation(autoLog)")
public Object around(ProceedingJoinPoint joinPoint, AutoLog autoLog) throws Throwable {
// 1. 获取方法签名信息
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
// 2. 记录方法开始时间
long startTime = System.currentTimeMillis();
// 3. 执行目标方法
Object result = joinPoint.proceed();
// 4. 构建日志实体
SysLog log = new SysLog();
