または列挙値を使用して
単一のスコープを設定しますCase と Duoli の使用シナリオ
インターフェイスには複数の実装がありますSpring によって管理されていますか? 依存関係の注入では、注入する実装クラスがわからない場合、Spring は NoUniqueBeanDefinitionException をスローします。
@Primary を使用して Spring にどの実装クラスを注入するかを指示します
#Qualifier @ComponentScanさまざまな構成がパフォーマンスに及ぼす影響Spring アプリケーションのパフォーマンスに合わせた Bean 構成の最適化影響Spring では、コンポーネントのスキャン範囲を設定することで javaBean インジェクション プロセスを簡素化できます。大規模なオブジェクト インジェクションが必要なシナリオでは、 @ComponentScan アノテーションを使用して、パッケージ スキャン ポイント もちろん、Spring が作成および管理するには、指定されたパッケージ パス内のクラスに @Component アノテーションを付ける必要があります。
#遅延読み込み
spring はデフォルトでプリロードを使用します。 Spring プロジェクトの開始時に Bean を作成します 遅延読み込み: Spring プロジェクトの開始時に Bean を作成せず、使用時に作成します
# #3 つの注入方法
#フィールド注入 (IDEA では推奨されないことを示すメッセージが表示されます)フィールド注入の欠点:
フィールドによって注入された Bean クラスは外部からは見えません
循環依存関係の問題
注入されるオブジェクトを最終オブジェクトとして設定することも、それらの不変オブジェクトを注入することもできません
フィールドによって挿入された Bean クラスは外部からは見えません
循環依存関係の問題
次のように、 A と B には循環依存関係があります。ただし、Spring では合法です。Sring クラスのコンパイルおよび開始時に例外はスローされません。エラーは、A または B が使用された場合にのみ報告されます。
コンストラクター インジェクションは、クラスのコンストラクターを通じて注入されます。
コンストラクター インジェクションで解決できる問題: 外部からは見えないクラスコンストラクター インジェクションを使用する場合、循環依存関係はありますか? Spring プロジェクトが開始されると、循環依存関係例外がスローされます。
set インジェクションで解決できる問題:
クラスの外では見えない
循環依存関係の問題
不可能必要な値を設定します。注入されたオブジェクトは最終的なものであり、それらの不変オブジェクトは注入できません
以上がJava Springの注入方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。