Asynchronous 是否可以异步运行AOP advice@AfterReturning?

Asynchronous 是否可以异步运行AOP advice@AfterReturning?,asynchronous,aop,Asynchronous,Aop,我是AOP新手,抱歉,如果这个问题太明显的话。 我在应用程序中使用aspectj将数据保存在缓存中 对于所有保存方法(将数据保存在DB中),在方法成功返回后,我使用advice@AfterReturning并将结果保存到缓存(Redis)。 因此,我的保存方法也必须等到数据保存到缓存中 我不希望我的保存方法等待数据保存到redis缓存中。我知道我可以通过使用runnable创建自己的异步执行器来实现这一点,但我想使用AOP。 那么,我可以让这个AOP建议异步运行吗?不,每个建议都与它截获的代码在

我是AOP新手,抱歉,如果这个问题太明显的话。 我在应用程序中使用aspectj将数据保存在缓存中

对于所有保存方法(将数据保存在DB中),在方法成功返回后,我使用advice@AfterReturning并将结果保存到缓存(Redis)。 因此,我的保存方法也必须等到数据保存到缓存中

我不希望我的保存方法等待数据保存到redis缓存中。我知道我可以通过使用runnable创建自己的异步执行器来实现这一点,但我想使用AOP。
那么,我可以让这个AOP建议异步运行吗?

不,每个建议都与它截获的代码在同一个线程中运行,否则由于并发性,您可能会遇到其他问题。但您不希望AOP引入问题,而是希望解决问题。;-)


话虽如此,没有什么能阻止你从建议中产生新的线索,是吗?

谢谢kriegaex,已经做了你在这里提到的同样的事情,效果很好:)