0

メソッドを持つシングルトン ユーティリティ ヘルパー クラスがありgetInstance()、遅延して初期化してインスタンスを返します。私はいつもgetInstance()インスタンスを取得するために使用します。ユーティリティクラス内の他のSpring Beanにアクセスする必要があるため、Springコンポーネントにするだけです。

同時に、このクラスはデフォルトで Spring Bean スコープのシングルトンです。

単純な遅延初期化のみを実装する必要がありますか、それともマルチスレッド アプリケーションの二重チェック ロックで使用する必要がありますか?

または、Spring Bean シングルトンは、アプリケーションのライフサイクル全体でこの単一のインスタンスを保証しますか?

4

1 に答える 1

0

または、Spring Bean シングルトンは、アプリケーションのライフサイクル全体でこの単一のインスタンスを保証しますか?

Spring は Bean を単一のスレッドにロードするため、Spring Bean が Spring の配線中にアクセスされ、後でアクセスされない限り、ダブルチェックのロックについて心配する必要はありません。他の作品では、ヘルパー クラスが Springpropertyとして別の Bean に渡さgetInstance()れると、シングル スレッド コンテキストで呼び出されます。

ただし、ファクトリを別のクラスに注入していて、ワイヤリングの完了getInstance()にメソッドが呼び出される可能性がある場合は、マルチスレッドの初期化から保護することを心配する必要があります。

于 2013-09-19T16:38:42.490 に答える