我想注释一些方法,然后在执行链的更深处能够检查沿途是否有任何方法带有注释?
不确定注释是否能够做到这一点?我正在使用Spring,所以AOP
可能会有所帮助,或者可能是AST
转换(我正在使用groovy)。最简单的是...
我的用例是使用自定义注释标记某些方法,例如@UseReplicaIfAvailable
,然后在服务层中,当我执行sql调用时,我可以决定是否可以使用副本数据库db(我不在乎数据的新鲜程度)...
我只想避免在每次方法调用时传递某种boolean
值。
答案 0 :(得分:1)
也许您可以通过这种方式进行操作:
@Aspect
@Component
public class EmployeeAspect {
private bolean wasExecuted = false;
@Before("@annotation(com.annotation.YourAnnotanion)") // or @After
public void secExecution(){
this.wasExecuted = true;
}
//getter, setter
}
这就是我的想法,另外,您还必须在执行链完成后将back flag重置为false值(您可以通过链接此bean作用域来实现)。祝你好运。