Spring管理コンテキスト外のクラスにBeanを注入する 質問する

Spring管理コンテキスト外のクラスにBeanを注入する 質問する

私は自社製品のエンドユーザーです。Spring への統合にはあまり適していませんが、コンテキストを把握し、必要な Bean を名前で取得することはできます。ただし、クラスが Spring 自体によって管理されていない場合でも、このクラスに Bean を挿入できるかどうか知りたいです。

説明: MyClass クラスのライフサイクルを管理している同じアプリケーションが、Spring コンテキストのライフサイクルも管理しています。Spring は MyClass のインスタンスを認識しておらず、何らかの方法でインスタンスをコンテキストに提供したいのですが、コンテキスト自体にインスタンスを作成することはできません。

ベストアンサー1

あなたはこれを行うことができます:

ApplicationContext ctx = ...
YourClass someBeanNotCreatedBySpring = ...
ctx.getAutowireCapableBeanFactory().autowireBeanProperties(
    someBeanNotCreatedBySpring,
    AutowireCapableBeanFactory.AUTOWIRE_AUTODETECT, true);

@Autowired内部で などを使用して、YourClass挿入するフィールドなどを指定できます。

おすすめ記事