目前我正在使用代理进行缓存抽象。代理问题是内部方法调用不起作用。现在,我想使用编译时编织而不是代理,因为内部方法调用是有效的。我在谷歌搜索过,但我没有找到任何解释如何使用编译时编织的实质性链接。加载时间编织有许多链接。任何人都可以给出编译时编织与缓存抽象或一些相关链接的任何例子吗?
先谢谢。
答案 0 :(得分:1)
你可以使用maven aspectj插件为缓存添加spring方面,通过识别方面类并手动将其应用到你想要的类(检查方面的spring-aspects和spring-cache jar)。
这种机制与弹簧没有直接联系,它可以用任何方面来完成,而不仅仅是弹簧方面。
之所以没有使用它是因为它不是很方便,因为我们需要知道我们想要在编译时提供建议的类,而不能依赖于spring注释扫描机制。
加载时间编织解决了您提到的以更透明的方式使重入调用工作的问题,而没有编译时间编织的不便。加载时间编织是spring使用aspectJ编织的推荐方式,由注释@EnableLoadTimeWeaving
启用。
对于您提到的具体用例,引入编译时编织似乎没有一个好的案例,一般来说编译时编织没有很好的用例,这解释了在线提供的文档不足。
我相信您提到的用例的最佳选择是使用加载时间编织。