我有三个不同的maven模块:
所有内容都将在同一个JVM中运行。
来自“模块”
@Authorization
public String getString(Subject s) {
return "hello";
}
“security-api”中的方面
@Aspect
public class AuthorizationAspect {
@Pointcut(""
+ "execution(* *(org.apache.shiro.subject.Subject, ..)) && "
+ "@annotation(com.company.Authorization) && "
+ "@this(c)")
public void cutAuthorize(Authorization c) { }
@Before("cutAuthorize(c)")
public void callFromAuthorizeBefore(Authorization c) {
System.out.println("> " + c);
}
}
所以,我想要的是当我从其他模块调用getString(subject)时,我想运行cutAuthorize()。我可以执行这个指定一个调用切入点,但只有当调用发生在同一模块中时才会被捕获,即如果我在“模块”中调用注释方法一切正常,但由于我通过接口从其他方法调用建议没有运行。
任何人都知道我必须使用什么切入点才能在运行时为某些代码提供建议,而不是在调用它时?我不知道自己是否清楚自己,但我想做的事情有点难以解释。
提前致谢,
瑞