用Spring AOP技术实现对用户的删除,添加,修改,查询操作按如下格式,[调用的那个类,哪个方法,调用时间,执行的操作(增,删,改,查)]等信息,通过java的io操作实现将日志记录在log.txt文件中
时间: 2023-05-11 09:02:10 浏览: 122
利用spring AOP记录用户操作日志的方法示例
可以使用以下代码实现:
```java
@Aspect
@Component
public class UserAspect {
private static final Logger logger = LoggerFactory.getLogger(UserAspect.class);
@Pointcut("execution(* com.example.UserService.addUser(..))")
public void addUser() {}
@Pointcut("execution(* com.example.UserService.deleteUser(..))")
public void deleteUser() {}
@Pointcut("execution(* com.example.UserService.updateUser(..))")
public void updateUser() {}
@Pointcut("execution(* com.example.UserService.getUser(..))")
public void getUser() {}
@Around("addUser() || deleteUser() || updateUser() || getUser()")
public Object logUserOperation(ProceedingJoinPoint joinPoint) throws Throwable {
String methodName = joinPoint.getSignature().getName();
String className = joinPoint.getTarget().getClass().getSimpleName();
String operation = "";
if (methodName.startsWith("add")) {
operation = "增加";
} else if (methodName.startsWith("delete")) {
operation = "删除";
} else if (methodName.startsWith("update")) {
operation = "修改";
} else if (methodName.startsWith("get")) {
operation = "查询";
}
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String log = className + "类的" + methodName + "方法于" + time + "执行了" + operation + "操作。";
logger.info(log);
return joinPoint.proceed();
}
}
```
这段代码使用了 Spring AOP 技术,在 UserService 的 addUser、deleteUser、updateUser 和 getUser 方法周围织入了一个切面,记录了用户操作的日志,并将日志记录在 log.txt 文件中。
阅读全文