gpt4 book ai didi

spring - 记录用户在 Spring MVC 中所做的事情

转载 作者:行者123 更新时间:2023-12-04 23:03:12 24 4
gpt4 key购买 nike

我有一个用 Spring MVC 编写的非常大的应用程序。我想保留一个“事件记录”,将用户在我的应用程序中的操作记录到数据库中。

在第一阶段,我只想要一个事件日志,它可以只是在用户操作期间调用的 Controller 方法列表,但稍后我希望此信息更具“人类可读性”,即而不是“modifyAccount( accountId = 5, accountBalance =500) 类似于“用户 X 将帐户 5 的余额更新为 500”。

我看到的问题是,由于我的应用程序非常大,我不想修改我的每个操作来添加此日志记录机制。有没有更灵活、声明式的方式来做到这一点?

最佳答案

您可以使用面向方面编程 (AOP) 来自动记录日志。

http://static.springsource.org/spring/docs/2.0.8/reference/aop.html

在上面的页面中显示了许多关于如何在 spring 中使用 AOP 的示例。一个例子是使用注释来查找您感兴趣的方法。使用这种注释是一种确定应该记录哪些方法的简单方法。

@Audit 注释

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Auditable {
...
}

审核方式
@After("@annotation(auditable)", argNames="joinPoint")
public void audit(JoinPoint joinPoint) {
logger.info("Called {} with arguments {}",
joinPoint.getSignature().getLongString(), joinPoint.getArgs());
}

我没有测试这段代码,但它明白了这一点。

关于spring - 记录用户在 Spring MVC 中所做的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18051612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com