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