使用Spring AOP审核日志

时间:2011-09-13 07:04:20

标签: spring-aop audit-logging

我们正在研究Spring的AOP框架,用于在我们基于Spring MVC的应用程序中添加审计日志功能。

在我们的应用程序中,每当我们调用服务方法时,我们都会传递额外的审计日志对象(除了普通的方法参数)。此审核日志对象具有少量预填充的属性,如用户名,用户ID和用户IP地址等。

在实际的服务方法中,我们在审计日志对象上设置了更多属性,具体取决于被调用的方法或在服务方法中执行的操作。

这是非常动态的,因方法而异。

在AOP类中,我们可以截取方法参数和返回值。但是,根据在服务方法中执行的操作计算的值然后在审计日志对象上设置。这个值在AOP类中不可用。

基本上我们需要填充审计日志对象,然后在执行方法后将其保存在数据库中,并且仅在截获的方法中设置come参数。

我们能做到吗?

请帮忙。

1 个答案:

答案 0 :(得分:0)

在AOP类中,您应该有权访问审计对象,因为您可以访问方法参数。因此,在方法返回后,在方法参数中找到审计对象并对其进行操作。只要您可以按类型找到它,审计对象的哪个参数无关紧要。

您在审计对象上设置的值仍应存在,因为审计对象是通过引用传递的。