1. ホーム
  2. java

[解決済み] Springの自己インスタンス化オブジェクトに依存性を注入する方法は?

2022-05-07 09:57:01

質問

あるクラスがあるとします。

public class MyClass {
    @Autowired private AnotherBean anotherBean;
}

そして、このクラスのオブジェクトを作成しました(または、他のフレームワークがこのクラスのインスタンスを作成しました)。

MyClass obj = new MyClass();

それでも依存関係をインジェクトすることは可能でしょうか?みたいな感じです。

applicationContext.injectDependencies(obj);

(Google Guiceにはこんなのがあったような)

どのように解決するのですか?

を使って行うことができます。 autowireBean() のメソッドを使用します。 AutowireCapableBeanFactory . 任意のオブジェクトを渡すと、Springはそれを自分自身が作成したもののように扱い、様々な自動配線を適用します。

を手に入れるには AutowireCapableBeanFactory は、それを自動配線すればよい。

private @Autowired AutowireCapableBeanFactory beanFactory;

public void doStuff() {
   MyBean obj = new MyBean();
   beanFactory.autowireBean(obj);
   // obj will now have its dependencies autowired.
}