Kann ich dynamisch laden, zusätzliche Spring Konfigurations-Dateien in eine bestehende WebApplicationContext?

Beim starten meiner webapp in Tomcat 6.0.18, ich bootstrap Frühjahr mit nur, was notwendig ist, um initialisieren das system-nämlich jetzt -, Datenbank-Migrationen. Ich will nicht einen Teil des Systems zu laden, bis die Migration erfolgreich abgeschlossen haben. Dies verhindert, dass die anderen Bohnen aus zu warten auf die Migration abgeschlossen ist, bevor Sie den Betrieb, oder auch instanziieren.

Habe ich eine startup-appcontext.xml konfiguriert mit einem dbMigrationDAO, ein startupManager ist ein ThreadPoolExecutor, und schließlich, ein FullSystemLauch bean. Ich gebe eine Liste der Konfigurations-Standorten, um die FullSystemLaunch bean per setter-Injektion. Die FullSystemLaunch bean implementiert ServletContextAware, bekommt eine Referenz auf die aktuelle WebApplicationContext und somit kann ich eine ConfigurableListableBeanFactory. Leider, diese bean factory isConfigurationFrozen() gibt true zurück, also durch den Aufruf beanFactory.setConfigLocations(configLocations) hat keine Wirkung.

Kann ich dies bewerkstelligen oder ist der Frühling bei mir verhinderte tun, weil es ist ein bisschen aus dem üblichen heraus? Es erscheint sinnvoll, wenn verstanden, aber auch ein bisschen gefährlich. Und ja, ich bin bereit zu Blasen, die aktuellen Rahmen b/c der aktuell geladenen Singletons sind nicht erforderlich, sobald die Initialisierung abgeschlossen ist.

Danke für die Hilfe.

InformationsquelleAutor Elliot | 2009-06-20
Schreibe einen Kommentar