Tomcat 6.0.18内でWebアプリケーションを起動すると、システムを初期化するために必要なもの、つまり今のところデータベースの移行だけでSpringをブートストラップします。移行が正常に完了するまで、システムのどの部分もロードしたくありません。これにより、他のBeanが移行の完了を待ってから操作したり、インスタンス化したりする必要がなくなります。
私はstartup-appcontext.xmlをdbMigrationDAO、ThreadPoolExecutorであるstartupManager、そして最後にFullSystemLauchBeanで構成しています。セッターインジェクションを介して、構成場所のリストをFullSystemLaunchBeanに渡します。FullSystemLaunch BeanはServletContextAwareを実装し、現在のWebApplicationContextへの参照を取得するため、 ConfigurableListableBeanFactoryを持つことができます。残念ながら、このBeanファクトリisConfigurationFrozen()はtrueを返すため、beanFactory.setConfigLocations(configLocations)を呼び出しても効果はありません。
私はこれを達成できますか、それとも春はそれが少し普通ではないので私がそうすることを妨げていますか?理解すればそれは合理的なようですが、少し危険でもあります。そして、はい、私は現在のコンテキストを吹き飛ばしたいと思っています。初期化が完了すると、現在ロードされているシングルトンは必要ありません。
お手伝いありがとう。