微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

失败时的 Spring 请求范围替换

如何解决失败时的 Spring 请求范围替换

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。