若依项目增加业务级别的日志,使用aop+注解的实现

1.https://gitee.com/dromara/RuoYi-Vue-Plus  原项目地址
2.主要就是仿照若依自带的@Log 注解重写一遍,不需要他那么复杂,只记录自己需要的内容,@Log 是接口级别的日志,接口入参,返回值,请求耗时,错误信息等等都记录了。我们是业务级别的,以上说的这几项都不关注,所以需要简化一下。

image

 

 新加的注解和切面目录结构如下,代码内容不多说了,仿照着写就行,不需要的去掉,没有的可以自己加。切面里面我只留了后切,@AfterReturning,对于业务来说前切没用。必须正确返回了才记录。

使用事件监听是因为,在切面里无法正常注入service(有@AutoConfiguration),所以数据落库的时候需要用到事件,事件监听接口需要加上@Async 异步执行。

BusinessLogEvent 实际就是一个属性类,可以把他理解为一个Bo或者实体类都行。

image

 最后是落库的地方,加一个事件监听和异步注解。这个业务日志需要重新写一套CRUD和接口日志不存同一个表。

3.使切面生效(最重要的)
Spring Boot 的自动配置机制是通过 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件来加载 Bean 的。@AutoConfiguration 注解本身不会自动让类被 Spring 发现——它必须配合这个 imports 文件才能生效。也就是加上spring才能扫描加载

image

 4.细节
还有一个小细节是需要在bo改成用 @AutoMappers 处理多映射,也很好理解之前只有和实体类的转换,现在多了个和event的转换

image

 

posted @ 2026-06-04 11:11  了悟  阅读(10)  评论(0)    收藏  举报