是否可以异步地 运行 AOP 建议@AfterReturning?
Is it possible to run AOP advice @AfterReturning, asynchronously?
我是AOP新手,抱歉,如果这个问题太明显了。
我在我的应用程序中使用 aspectj 将数据保存在缓存中。
对于所有保存方法(将数据保存在数据库中),我使用建议@AfterReturning 并将结果保存到缓存(Redis),在方法 returns 成功之后。
所以,我的保存方法必须等到数据也保存在缓存中。
我不希望我的保存方法等到数据保存到 redis 缓存中。我知道我可以通过使用 运行nable 创建我自己的异步执行器来做到这一点,但我想使用 AOP。
那么,无论如何我可以异步地提出这个 AOP 建议 运行 吗?
不可以,每个advice都和它截取的代码在同一个线程中运行,否则你可能会因为并发而出现其他问题。但是您不希望 AOP 引入问题,而是解决问题。 ;-)
话虽如此,没有什么能阻止您从建议中产生新线程,对吗?
我是AOP新手,抱歉,如果这个问题太明显了。 我在我的应用程序中使用 aspectj 将数据保存在缓存中。
对于所有保存方法(将数据保存在数据库中),我使用建议@AfterReturning 并将结果保存到缓存(Redis),在方法 returns 成功之后。 所以,我的保存方法必须等到数据也保存在缓存中。
我不希望我的保存方法等到数据保存到 redis 缓存中。我知道我可以通过使用 运行nable 创建我自己的异步执行器来做到这一点,但我想使用 AOP。 那么,无论如何我可以异步地提出这个 AOP 建议 运行 吗?
不可以,每个advice都和它截取的代码在同一个线程中运行,否则你可能会因为并发而出现其他问题。但是您不希望 AOP 引入问题,而是解决问题。 ;-)
话虽如此,没有什么能阻止您从建议中产生新线程,对吗?