どのように非スレッドセーフ怠惰な初期化CXFクライアントの工場を修正するには?

w9n7cxx5fM8:

私は、非スレッドセーフな方法でCXFクライアントの怠惰な初期化(外部)ファクトリクラスを持っています。
(あまりにも急速に呼び出された場合、それはクライアントに2回以上をインスタンス化することも可能です。)

このクラスは、初期化を行い、保護の方法があります。これは、最初のリクエストに応じてメソッドを呼び出します。

私は自分のクライアントの工場をバイパスを作成する必要がありますか?
どういうわけか、このクラスは、単一のスレッドで1つの要求を送信することにより、クライアントを初期化/保護されたメソッドを呼び出して作りますか?

それとも、それは最初の数の要求に起こるようにこれを無視しても安全ですか?

トーマス:

あなたは初期化が安全な方法で行われていることを確認したい場合は、保護されたメソッドへの反射のアクセスを使用して、独自のコードから設定メソッドを呼び出すことができます。

私は、適切に文書化し、初期化のための方法を保存するために、ライブラリの提供者に話でしょう。動作は、あなたは私に、工場/ライブラリのバグのようなルックスを記述する。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=313163&siteId=1