Spring Boot使用AOP实现日志后台管理模块的日志数据添加
自己定义一个注解:
package com.cy.pj.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RequiredLog {
String value() default "operation";
}
在需要被记录的业务层方法上添加注解,这里以改变用户的状态为例:
@RequiredLog("禁用启用")
@Override
public int validById(Integer id, Integer valid, String modifiedUser) {
//1.合法性验证
if(id == null || id < 0) {
throw new IllegalArgumentException("参数不合法:id" + id);
}
if(valid != 1 && valid != 0) {
throw new IllegalArgumentException("参数不合法");
}
if(StringUtils.isEmpty(modifiedUser)) {
throw new ServiceException("修改用户名不能为空");
}
//2.执行禁用或启用操作
int rows = 0;
try {
rows = sysUserDao.validById(id, valid, modifiedUser);
} catch (Throwable e) {
e.printStackTrace();
throw new ServiceException("底层正在维护中");
}
//3.判定结果并返回
if(rows == 0) {
throw new ServiceException("记录可能已经不存在");
}
return rows;
}
创建日志切面处理类,用于输出业务开始时间,结束时间,以及将用户行为信息录入数据库。
类上面添加@Slf4j(添加lombok依赖)&#x