失败时的 Spring 请求范围替换

问题描述

我对 spring 请求范围有问题。它在我 99.9% 的通话中都能正常工作,因为几乎总是有可用的网络请求。不幸的是,有一些事情是通过 @Async 完成的,这里事情变得棘手。

我想要的解决方案是使用 @Scope(value = "request" proxyMode = ScopedProxyMode.TARGET_CLASS) 替换 bean,其实现基本相同,但使用原型范围。 我可以让两个 bean 从同一个父级继承,然后添加不同的作用域。

但是我不知道如何进行这项工作。由于我们有相同的 Bean,我会收到一个错误,指出该 Bean 不是唯一的。 逻辑是尝试创建主请求范围 bean,并在失败时捕获 BeanCreationException 并将其替换为原型实现。

在这里找不到带有 @Primary 或命名 bean 的解决方案,因为原则上,调用方法的上下文(调用堆栈中较高的某个位置,即异步与否)决定了 bean 是否属于类型请求或原型。

不幸的是,到目前为止我还没有找到任何真正的解决方案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)