大家先思考一个问题,缓存注解和日志注解上#后面跟的动态参数是怎么解析出来的
方法上缓存注解
@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 ""