我们正在研究Spring的AOP框架,用于在我们基于Spring MVC的应用程序中添加审计日志功能。
在我们的应用程序中,每当我们调用服务方法时,我们都会传递额外的审计日志对象(除了普通的方法参数)。此审核日志对象具有少量预填充的属性,如用户名,用户ID和用户IP地址等。
在实际的服务方法中,我们在审计日志对象上设置了更多属性,具体取决于被调用的方法或在服务方法中执行的操作。
这是非常动态的,因方法而异。
在AOP类中,我们可以截取方法参数和返回值。但是,根据在服务方法中执行的操作计算的值然后在审计日志对象上设置。这个值在AOP类中不可用。
基本上我们需要填充审计日志对象,然后在执行方法后将其保存在数据库中,并且仅在截获的方法中设置come参数。
我们能做到吗?
请帮忙。
答案 0 :(得分:0)
在AOP类中,您应该有权访问审计对象,因为您可以访问方法参数。因此,在方法返回后,在方法参数中找到审计对象并对其进行操作。只要您可以按类型找到它,审计对象的哪个参数无关紧要。
您在审计对象上设置的值仍应存在,因为审计对象是通过引用传递的。