消息
代码完成:
关于
该项目的目标是扩展 Guice 的 AOP 功能并支持异步方法调用。 要异步方法,用户只需使用@Asynchronous注释标记方法。 有了这个,我们抽象了管理异步调用的横切关注点,并减少了伴随异步调用而产生的代码膨胀量。
问题
Guice 是 Google 推出的一个简单的依赖注入框架,深受好评和广泛使用。 不幸的是,它的简单性带来了一些限制。 Guice 的 AOP 允许用户围绕操作方法拦截器实现堆叠。 在这种情况下,一组拦截器将包装一个方法调用,以便一个拦截器调用下一个(在堆栈中),直到最终调用该方法。 之后,拦截器继续执行返回到它之前的拦截器(备份堆栈)。
问题是,从拦截器内部,没有干净的方法将调用卸载到其他线程。 卸载任务并返回到调用者会导致堆栈跳出其假定的顺序。 实际上,当从另一个线程调用下一个拦截器时,就会执行错误的拦截器。
解决方案
我们的解决
2021-07-26 20:11:44
120KB
Java
1