我想记录在我的Web应用程序中更改域的每个用户操作。当用户尝试创建,更新,删除某些数据时,操作必须保存到用户日志中。但是当用户操作列表时,生成报告。它不需要记录。
我是我当前的程序,我写了服务日志。并将该服务日志调用到每个操作方法(performCreate,performUpdate,performDelete)
有没有办法创建单个类来编写拦截所有写入操作的用户日志?
编辑: 我使用Struts 1.x
答案 0 :(得分:1)
您可以使用Aspect Oriented Programming,aspectj中的简单解决方案如下所示:
public aspect Logger {
pointcut writeActions():
execution (* *.perform*(..));
void before(): writeActions(){
// log the action
}
}
您还可以在方法执行之前或之后访问方法参数,获取返回值并执行代码。