4

この投稿で説明したように、クラスター化された環境でシングルトンを使用することは適切ではありません(異なる JVM に複数のシングルトン オブジェクトがあるため)。これは、Spring フレームワークによって作成されたシングルトンに当てはまります。

それが正しければ、Spring フレームワークを使用してシングルトン クラスを使用するには、十分に注意する必要があります。この理解が正しいか教えてください。

4

1 に答える 1

7

これは必ずしもそうではありません。

意味のある状態を共有している場合、個別の JVM 間でシングルトンを使用するのは問題です。たとえば、同じアプリケーションの一部である 2 つの別個のアプリケーション サーバーに 2 つの別個のインスタンスが存在する場合、増分 ID を格納および発行するシングルトンは非常に危険です。

これを多かれ少なかれ扱いにくいものにするSpring固有のものは何もありません。Spring Bean (サービスの可能性が高い) は、グッド プラクティスの問題として、実用的である限り最小限の状態を維持することを目指す必要があります。状態を共有する必要がある場合は、他の共有状態の場合と同様に、この問題を解決する必要があります。

非常に多くの人がクラスター化された環境で Spring を使用しており、上記に関連する問題に遭遇することはありません。私もその一人です!

于 2012-07-02T20:59:09.700 に答える