Spring tiene el bonito mecanismo PropertyPlaceholderConfigurer para inyectar valores como tiempos de espera, URL de JDBC y otros en Spring beans para propósitos de configuración. ¿Hay una manera sensata de manejar los valores de configuración que pueden cambiar en el tiempo de ejecución?Spring: cómo hacer una configuración de propiedad variable de tiempo de ejecución transparente
ACTUALIZACIÓN: Con Spring 3.1 hay una buena manera de incluir fuentes de configuración no estáticas como la base de datos a través del PropertySource s. Algunos ApplicationContexts proporcionan un mecanismo de actualización que, en principio, puede manejar cambios en los valores de configuración. Sin embargo, detiene la aplicación primero, luego crea todos los beans frescos y luego vuelve a iniciar el contexto de la aplicación. Sin embargo, para nuestros propósitos, necesitaría una forma de hacerlo de forma transparente, de manera que el servidor maneje correctamente las solicitudes actualmente en ejecución.
Otra idea para hacer esto sería un Alcance personalizado que crea objetos nuevos cuando la configuración cambia. Desafortunadamente, ObjectFactory proporcionado al Alcance utiliza una definición de bean preprocesada, de modo que los marcadores de posición no se vuelvan a leer desde la configuración. Por lo tanto, los objetos creados tienen la misma configuración. :-(
Probablemente una forma de hacerlo sería utilizar un PropertyOverrideConfigurer http://stackoverflow.com/a/595201/21499, pero creo que el mecanismo de anulación de propiedad es bastante incómodo de usar y propenso a errores. –