如何使用Spring AOP';执行非常复杂的审核日志记录的方面是什么?

如何使用Spring AOP';执行非常复杂的审核日志记录的方面是什么?,spring,aop,aspectj,spring-aspects,Spring,Aop,Aspectj,Spring Aspects,我正在构建一个SpringWeb应用程序。使用SpringAOP的方面进行审计日志记录 我有如下方法的业务类,我想在某些情况下审核日志 在方法执行期间 方法返回后 @Aspect public class MyBusinessClass {... public void registerUser() { // do some business logic here... userId = // userService.saveUser(...).getI

我正在构建一个SpringWeb应用程序。使用SpringAOP的方面进行审计日志记录

我有如下方法的业务类,我想在某些情况下审核日志

  • 在方法执行期间
  • 方法返回后

    @Aspect  
    public class MyBusinessClass {...
    
    public void registerUser() {  
           // do some business logic here...  
          userId = // userService.saveUser(...).getId(); // etc...  
          if(successful) {  
              // then send Email notification  
             audit.log(userId, "success sending email notification"... some other params);  
          else {
              audit.log(userId, "fail to send email notification"...);  
          }  
          //do some more logic before returning method  
          audit.log(userId,"successfully registered user...." ...);  
          ..// method returns   
          }
    
我已经在一个单独的类中定义了方面

我遇到了一些问题,因为我在这里和其他文章中看到的所有常见的简单示例似乎都非常简单。例如,它们工作起来很容易,因为我见过的最复杂的方法只涉及将方法参数提取到方面的建议中

但我这里的问题是,我不想以某种方式将局部变量提取到Aspect的建议中,而是不止一次地根据某些条件进行审计日志记录

不要误解我的意思,我们已经在相同的位置将Log4j日志记录到文件中,但是我们也需要将这些审计日志记录到数据库中

我只是想知道在高水平上实现我想要做的事情的解决方案是什么

抱歉代码格式有点差。。。(大部分是伪代码)。
我就是不能让这个代码格式化在StackOverflow上工作。Github降价要容易得多。

我已经读了两遍你的问题,但仍然不知道你想做什么。您可能需要更具体一些,可能需要一个(伪)代码示例来说明您正在尝试做什么。如果你确实是一个软件开发人员,正如你的昵称所暗示的那样,你应该能够更好地解释或者提供一个描述你的情况的例子。您不能抱怨其他解决方案“太简单”,同时只提供一些过于简化的pesudo代码。你的问题已经获得了两次接近票数的投票,所以请在它完全关闭之前进行改进。道歉。我想现在我不需要回答这个问题,因为这个问题对我不再有效。请继续并关闭。谢谢