web-dev-qa-db-ja.com

SpringでBeanを手動で自動配線するにはどうすればよいですか?

私はBを持っています。これは自分で作成する必要があり(new B()を使用)、@Autowireおよび@PostConstructアノテーション。

Beanからこれらの注釈をSpringで処理するにはどうすればよいですかA

関連する質問:

24
Aaron Digulla

アーロン、あなたのコードは正しいと思いますが、私は以下を使用しました:

B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean( bean );
factory.initializeBean( bean, "bean" );

最初のメソッドは、@Autowireフィールドとメソッドを処理します(ただし、クラシックプロパティは処理しません)。 2番目のメソッドは、後処理(@PostConstructおよび定義済みのBeanPostProcessors)を呼び出します。

アプリケーションコンテキストは、ApplicationContextAwareインターフェースを実装している場合、Beanで取得できます。

38
AlexR