java - 如何修复非线程安全的延迟初始化 CXF 客户端工厂?
问题描述
我有一个(外部)工厂类,它以非线程安全的方式延迟初始化 CXF 客户端。
(如果调用太快,它可能会实例化客户端两次或更多次。)
该类有一个受保护的方法来进行初始化。它在第一个请求上调用该方法。
我应该绕过工厂创建自己的客户端吗?
以某种方式通过在单个线程上发送一个请求/调用受保护的方法来使类初始化客户端?
或者在前几个请求中发生这种情况时忽略它是否安全?
解决方案
如果您想确保初始化以安全的方式发生,您可以使用对受保护方法的反射访问从您自己的代码中调用 setup 方法。
我会与库的提供者交谈,以记录初始化的正确和保存方式。您描述的行为对我来说看起来像是工厂/库的错误。
推荐阅读
- php - 如何限制经过身份验证的用户只能访问他们的个人资料
- ios - 在其他视图中更新核心数据属性时,SwiftUI 列表不更新
- visual-studio - Visual Studio 的一个问题,调试时占用大量磁盘空间
- ios - 动态更改属性字符串
- javascript - 如何访问名为 div 的变量中的元素
- javascript - 数组的特定排序项
- haskell - 哈斯克尔。我很困惑这个代码片段是如何工作的
- matlab - 为什么我的代理总是在 RL 中采取相同的行动?
- c# - 方法 'Range' 没有重载需要 4 个参数 [Assembly-CSharp]
- python - _ssl.c:777 sslv3 警报证书在 ftplib 程序中未知