Me he topado varias veces con el mismo problema, y me gustaría tener alguna información sobre lo que otras personas piensan sobre el problema: Supongamos que tenemos la aplicación Spring empaquetada como .war y queremos ejecutarlo en varios entornos. (desarrollo/prueba/preproceso/prod/etc)Manejo de archivos de configuración en aplicaciones web Spring
Para acceder a la infraestructura que necesita la aplicación, (bases de datos/servicios web, etc.) almacenamos la información de acceso en archivos de configuración, también hay alguna configuración comercial en esos archivos. Digamos que usamos .properties archivos para este propósito (porque tenemos una aplicación de resorte dentro de la guerra y nos gusta que las propiedades sean leídas por un trazador de líneas en el contexto de aplicación) y también suponemos que en los diferentes entornos no utilizamos No tiene el mismo servidor de aplicaciones/contenedor de servlets. (Por ejemplo: dev, test: amarre, preprod: Tomcat, prod: GlassFish)
Lo que por lo general han hecho es crear múltiples perfiles de Maven , uno para cada entorno, la configuración necesaria en los archivos correspondientes para cada uno.
Ahora, recientemente me he enfrentado a una pregunta de un tipo que ejecuta operaciones: '¿Realmente tenemos que generar una nueva compilación con el perfil apropiado en el servidor de compilación si el DB se cambia en el entorno preprod?' me respondió: 'No, en realidad se puede ir a .../webapps/currentApp/WEB-INF/classes/config/application.properties y cambiar los valores de allí, a continuación, reinicie el contenedor'
Hemos llegado con una solución que resuelve algunos aspectos de este problema: usando el plugin de ensamblaje de Maven, incrustamos un Jetty dentro de la guerra que lo hace utilizable como una guerra 'ejecutable', también nos da la posibilidad de tener una configuración global XML, del cual el iniciador del Jetty integrado crea/modifica los archivos .properties apropiados en el directorio de guerra explotado y solo luego inicia la aplicación.
Pero, una vez más, esto no resuelve el problema si desea utilizar cualquier otra cosa que no sea Jetty.
¿Cómo se está enfrentando cada uno con la misma situación?
Gracias por su respuesta, enfoque interesante, parece que vale la pena intentarlo. – abalogh