0

すべてのアプリケーション統合テストで、以下の手動オートワイヤーを使用しています。

context = new ClassPathXmlApplicationContext(getConfigLocations());
context.getAutowireCapableBeanFactory().autowireBeanProperties(this, getAutowireMode(), true);

このようにして、必要な Spring Bean がテスト クラス (this) に自動的に注入されます。

これは正常に動作しますが、私のテスト クラスの 1 つで、クラスを InitializingBean にしました。Bean でこのように自動配線すると、afterPropertiesSet()メソッドがトリガーされることはありませんが、デバッグではすべてのプロパティが正しく設定されていることがわかります。

誰かが私に理由を説明できますか?

4

1 に答える 1

2

autowireBeanProperties()プロパティを自動配線するだけで、初期化の他の手順は実行しません。

などの他の方法を使用AutowireCapableBeanFactoryして、完全な初期化を実行できますinitializeBean()autowireModeただし、この場合はパスできないようです 。そのため、カスタム s が本当に必要な場合(つまり、Bean でautowireMode使用しない場合)、この問題を解決する方法は明確ではありません。@Autowired

于 2012-09-14T11:06:33.213 に答える