(を使用して)B
自分で作成する必要があり、アノテーションが付いているBeanがあります。new B()
@Autowire
@PostConstruct
BeanからこれらのアノテーションをSpringに処理させるにはどうすればよいA
ですか?
関連する質問:
(を使用して)B
自分で作成する必要があり、アノテーションが付いているBeanがあります。new B()
@Autowire
@PostConstruct
BeanからこれらのアノテーションをSpringに処理させるにはどうすればよいA
ですか?
関連する質問:
アーロン、あなたのコードは正しいと思いますが、私は以下を使用しました:
B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean( bean );
factory.initializeBean( bean, "bean" );
最初のメソッドは@Autowire
フィールドとメソッドを処理します(ただし、クラシックプロパティは処理しません)。2番目のメソッドは、後処理(@PostConstruct
および定義されBeanPostProcessor
たs)を呼び出します。
アプリケーションコンテキストは、インターフェイスを実装している場合、Beanで取得できApplicationContextAware
ます。
もう1つのオプションは、(newキーワードを使用して自分で新しいインスタンスを作成する代わりに)Springコンテナに新しいBeanを自動的に作成させることです。プログラムで新しいインスタンスをインスタンス化する必要があるクラス内に、 AutowireCapableBeanFactoryのインスタンスを挿入します。
@Autowired
private AutowireCapableBeanFactory beanFactory;
それで:
B yourBean = beanFactory.createBean(B.class);
コンテナは、通常どおり@Autowiredアノテーションが付けられたインスタンスを注入します。