我对spring请求范围有问题。它在我99.9%的通话中运行良好,因为几乎总是有一个web请求可用。不幸的是,有些事情是通过 @Async
在这里事情变得棘手。
我想要的解决方案是使用 @Scope(value = "request" proxyMode = ScopedProxyMode.TARGET_CLASS)
使用基本相同的实现,但使用原型范围。我可以让两个bean从同一个父级继承,然后添加不同的作用域。
然而,我不知道如何使这项工作。由于我们有相同的bean,我将得到一个错误,即bean不是唯一的。逻辑是尝试创建主请求范围bean,并在失败时捕获 BeanCreationException
并将其替换为原型实现。
我找不到解决问题的办法 @Primary
或者在这里命名bean,因为原则上,调用方法的上下文(callstack中的某个更高的位置,即async或not)决定bean是request类型还是prototype类型。
不幸的是,到目前为止我还没有找到任何真正的解决办法。
暂无答案!
目前还没有任何答案,快来回答吧!