我想知道有没有办法为java.security.KeyStore
制作一个Spring AOP代理,这里有一些障碍:
我知道用上述约束制作Spring AOP代理是不可能的,但无论如何我需要以某种方式计算应用程序中KeyStore的方法调用。任何人都可以建议绕过Spring AOP约束或其他方式?
答案 0 :(得分:0)
如果您可以控制调用代码 - 并且希望您这样做,因为它是您自己的应用程序,您正在谈论 - 并且愿意使用完整的AspectJ(不需要任何代理)而不是Spring-AOP,您可以使用call()
切入点而不是仅限于Spring-AOP的execution()
切入点。切入点看起来像这样(未经测试,被记忆破解):
@Pointcut("call(* java.security.KeyStore.*(..))")
如果要将切入点扩展到子类,请在类名后面添加+
:
@Pointcut("call(* java.security.KeyStore+.*(..))")
如果构造函数调用来自您编写的代码,您甚至可以拦截构造函数调用:
@Pointcut("call(java.security.KeyStore+.new(..))")