2011-09-13 91 views
0

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

在我们的应用程序中,无论何时调用服务方法,我们都会传递额外的审计日志对象(除了常规方法参数外)。这个审计日志对象具有很少的属性,如用户名,用户ID和用户IP地址等。

在实际的服务方法中,我们根据被调用的方法或正在执行的操作在审计日志对象上设置更多的属性服务方法。

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

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

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

有什么我们可以做到的?

请帮忙。

回答

0

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

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