Spring dispone del buon meccanismo PropertyPlaceholderConfigurer per l'immissione di valori come timeout, URL JDBC e così via in bean Spring per scopi di configurazione. Esiste un modo ragionevole per gestire i valori di configurazione che possono cambiare in fase di esecuzione?Spring: come eseguire la configurazione di proprietà modificabili runtime trasparente
AGGIORNAMENTO: Con Spring 3.1 è possibile includere sorgenti di configurazione non statiche come il database tramite PropertySource s. Alcuni ApplicationContexts forniscono un meccanismo di aggiornamento che, in linea di principio, è in grado di gestire i cambiamenti dei valori di configurazione. Tuttavia, interrompe prima l'applicazione, quindi crea tutti i bean freschi e quindi riavvia il contesto dell'applicazione. Tuttavia, per i nostri scopi avrei bisogno di un modo per farlo in modo trasparente, in modo tale che il server gestisca correttamente le richieste attualmente in esecuzione.
Un'altra idea per farlo sarebbe un ambito personalizzato che crea nuovi oggetti quando la configurazione cambia. Sfortunatamente l'ObjectFactory fornito allo Scope utilizza una definizione di bean preelaborata, in modo tale che i segnaposto non vengano letti di nuovo dalla configurazione. Quindi gli oggetti creati hanno la stessa configurazione. :-(
Probabilmente un modo per farlo sarebbe utilizzare un PropertyOverrideConfigurer http://stackoverflow.com/a/595201/21499, ma penso che il meccanismo di override della proprietà sia piuttosto scomodo da usare e soggetto a errori. –