大家先思考一个问题,缓存注解和日志注解上#后面跟的动态参数是怎么解析出来的
方法上缓存注解
@Cached(name = "cktest", key = "#sjzxDbname + #sjzxTable", cacheType = CacheType.LOCAL, expire = Integer.MAX_VALUE, localLimit = 1500)
方法上日志注解
@CkOperatedLog(module = "test", operation = "find", description = "查询test2接口", param = "'zdmc='+#vo.zdmc")
下面就是利用AOP+SpEL实现日志记录
使用spring的AOP需要引入除springboot坐标外,还需要引入一个坐标
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
自定义日志注解
@Retention(RetentionPolicy.RUNTIME)
@Target({
ElementType.METHOD})
@Documented
public @interface CkOperatedLog {
/**
* 所属模块
*/
String module() default "";
/**
* 操作类型add,del等
*/
String operation() default ""

本文探讨了如何在Spring AOP中利用SpEL解析技术,实现在缓存注解和日志注解中动态参数的处理,包括@Cached和@CkOperatedLog注解的使用实例,以及自定义注解的AOP拦截和参数替换过程。
最低0.47元/天 解锁文章
308

被折叠的 条评论
为什么被折叠?



