关于spring bean销毁的Aspectj切入点

时间:2016-08-16 20:32:24

标签: java spring aop aspectj pointcut

是否可以在Java中执行AspectJ建议,该建议在目标对象超出范围或被销毁时执行?

假设我们有一个类,它具有与切入点表达式匹配的各种方法,并且已经实现了缓存方面,以便缓存所有方法调用的响应。缓存键是代理对象与方法签名和参数的串联。我们希望在销毁目标对象时使缓存无效。

当这个对象被销毁时,任何人都可以分享我们如何执行建议的细节吗?

1 个答案:

答案 0 :(得分:0)

可能你指的是你的缓存方面here

您不仅可以将引用保留在表示方法调用的字符串中,还可以保存引用要缓存的方法的实际对象。这里的重要部分是你必须使用弱引用,以免使相应的对象超出范围。您可以收集WeakHashMap中的所有对象,并定期运行清理作业,负责从实际缓存中删除不存在的对象。

更新:我不是Spring用户,但也许Spring中还有生命周期方法/钩子,当组件超出范围或以其他方式结束其生命周期时,可以触发它。