我想注释一些方法,然后在执行链的更深处能够检查沿途是否有任何方法标记有注释?
不确定注释是否能够做到这一点?我正在使用 Spring,所以也许 AOP
可以提供帮助,或者也许 AST
转换(我正在使用 groovy)。什么是最简单的...
我的用例是用自定义注释标记一些方法,例如@UseReplicaIfAvailable
然后在服务层中,当我执行 sql 调用时,我可以决定是否可以使用副本数据库(我不关心数据的新鲜度)...
我只是想避免通过每个方法调用传递某种 boolean
值。
最佳答案
也许你可以这样做:
@Aspect
@Component
public class EmployeeAspect {
private bolean wasExecuted = false;
@Before("@annotation(com.annotation.YourAnnotanion)") // or @After
public void secExecution(){
this.wasExecuted = true;
}
//getter, setter
}
这就是我想到的,另外你必须在执行链完成后将后退标志重置为假值(你可以通过链接这个bean作用域等来做到这一点)。祝你好运。
关于java - 检测方法执行链中的任何方法是否使用特定注释进行注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52405960/