Spring で自己インスタンス化されたオブジェクトに依存関係を注入するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-29 23:46:29
オリジナル
273 人が閲覧しました

How to Inject Dependencies into Self-Instantiated Objects in Spring?

Spring で自己インスタンス化されたオブジェクトのインジェクションの課題を克服する

Spring を使用する場合、アノテーションと依存関係の注入を通じて依存関係を管理するのが一般的です。ただし、Spring コンテキストの外で自己インスタンス化されたオブジェクトがある状況が発生する可能性があります。このような場合、Spring のインジェクション機能をどのように活用できますか?

ジレンマ: 手動インスタンス化と依存関係管理

次のシナリオを考えてみましょう:

<code class="java">public class MyClass {
    @Autowired private AnotherBean anotherBean;
}

...

MyClass obj = new MyClass();</code>
ログイン後にコピー

インスタンス化しました。 MyClass を手動で使用しますが、anotherBean のようにその依存関係を注入したいと考えています。どうやって対処しますか?

解決策: AutowireCapableBeanFactory を利用する

Spring には AutowireCapableBeanFactory インターフェイスが用意されており、これにより、自己インスタンス化されたオブジェクトを含む任意のオブジェクトに依存関係を注入できます。 BeanFactory にアクセスするには:

<code class="java">private @Autowired AutowireCapableBeanFactory beanFactory;</code>
ログイン後にコピー

自己インスタンス化されたオブジェクトへの依存関係の注入

beanFactory を使用すると、オブジェクトに依存関係を注入できます。

<code class="java">public void doStuff() {
   MyBean obj = new MyBean();
   beanFactory.autowireBean(obj);
   // obj will now have its dependencies autowired.
}</code>
ログイン後にコピー

その後autowireBean を呼び出すと、インスタンス化されたオブジェクトに依存関係が挿入され、使用できるようになります。このアプローチにより、手動で作成したオブジェクトに対しても Spring の依存関係注入機能を活用できます。

以上がSpring で自己インスタンス化されたオブジェクトに依存関係を注入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!