Java-动态地忽略事务方法

Java-动态地忽略事务方法,java,methods,dynamic,ignore,Java,Methods,Dynamic,Ignore,我正在编写一个与SOAP API对话的程序。我正在编写的程序涉及资金,能够在运行时确定(我的推理是,如果我能够在运行时处理它,我可以轻松地将配置文件放在一起,以便在编译后使用)我是否希望执行处理资金的方法,这将是非常有用的 我有一个makerequest方法,所有API调用都要通过该方法,理想情况下我希望这样: ... @DealsWithMoney public void myMethodWhichMakesAnAPIRequest() { ... th

我正在编写一个与SOAP API对话的程序。我正在编写的程序涉及资金,能够在运行时确定(我的推理是,如果我能够在运行时处理它,我可以轻松地将配置文件放在一起,以便在编译后使用)我是否希望执行处理资金的方法,这将是非常有用的

我有一个makerequest方法,所有API调用都要通过该方法,理想情况下我希望这样:

  ...
   @DealsWithMoney
   public void myMethodWhichMakesAnAPIRequest() {
      ...
      this.makeRequest(...); 
   }

   public void makeRequest(...) {
      if (!this.allowMoneyHandlingMethods) {
          //Psuedo code
          if (method_that_called_this_method has @DealsWithMoney annotation) {
              //ignore
          }
      }
   }
我从来没有写过自定义注释,所以我希望这里能提供一些指导。另外,如果你能建议一个更好的处理方法

干杯

皮特

将为您定义注释

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace()
获取堆栈轨迹,您应该能够从中获取调用者的
方法
成员
引用,并执行以下操作

Annotation[] annotations = method.getDeclaredAnnotations();
并检查您要查找的注释是否在返回的列表中

Annotation[] annotations = method.getDeclaredAnnotations();