私は設定ファイルを読み込み、それを使って任意のタイプの新しいBeanをビルドしてBeanファクトリーに追加しようとしているspringbootスターターモジュールを持っています。springbootスターターモジュールの設定を読み取ってBeanを動的に登録する
@Configuration
class SomeConfig implements BeanFactoryAware {
BeanFactory beanFactory
@Autowired
ConfigData configData
@Override
void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = beanFactory
}
@PostConstruct
void addMoreBeans() {
ConfigurableBeanFactory configurableBeanFactory = (ConfigurableBeanFactory) beanFactory
configurableBeanFactory.registerSingleton('someObject', new SomeObject())
}
}
@RestController //(in the application)
class SomeController {
@Autowired
SomeObject someObject // this is null.
}
IタイプのBeanにアクセスしようとする「SomeObjectの」上記設定Beanを含有スターターモジュールを使用している(コントローラBean内)SpringBootApplicationでは、autowiredいません。
私は、起動プロセスの後半でこれらのBeanを初期化しますが、自動配線が間に合わないことを確認しています。
最初に初期化するためにスターターモジュール内のBeanを強制的に使用する必要はありますか。 ?
私はコードをテストしようとします。 'BeanFactory'は' registerSingleton'メソッドを持っていないことがわかりました。私の春は4.3.10です。 – diguage
** ConfigurableBeanFactory **です。上記の私の質問を編集しました。 – KrishVilay