Haga primavera reemplazar los marcadores de posición en diferentes tipos de archivos (que no sea configuraciones de primavera)

StackOverflow https://stackoverflow.com/questions/3914971

Pregunta

¿Hay una manera de hacer de resorte (v.3.0) marcadores de posición de análisis sintáctico de archivos que no son .properties? Sé que puedo escribir mi propio PropertyPlaceholderConfigurer pero yo estaba buscando una manera más "limpia" para hacerlo.

EDIT:

Para ser más específicos, lo que realmente quiero hacer es reemplazar los marcadores de posición presentes en archivos .sql. Por lo que los valores de los marcadores de posición se almacenan en .properties pero los marcadores de posición se utilizan en los archivos .sql.

¿Fue útil?

Solución

Un grano PropertyPlaceholderConfigurer reemplazará marcadores de posición en otras definiciones de frijol. En concreto, se actualizan los valores de las propiedades del bean en las definiciones de frijol ... antes de que los granos se crea realmente. Por lo tanto, si desea utilizar PropertyPlaceholderConfigurer modificar SQL, tendría que ser incorporado en los valores de propiedad de frijol de que SQL. Esta clase no puede reemplazar propiedades en archivos arbitrarios.

Si desea reemplazar los marcadores de posición en archivos arbitrarios, la clase PropertyPlaceholderHelper es una mejor apuesta. Por ejemplo, el método

String replacePlaceholders(String value, Properties properties)

reemplazará los marcadores de posición en value con propiedades tomadas de properties que vuelven la cadena reescrita. Desde aquí se puede adaptar / envolver esta opción para sustituir los marcadores de posición en un archivo.

Otros consejos

PropertyPlaceholderConfigurer puede ser suministrado con un objeto Properties arbitrario (a través de la propiedad properties).

No sé si se utiliza Maven, pero si lo hace, yo usaría recursos filtrado para inyectar las propiedades en los archivos SQL en el momento del despliegue (existen soluciones similares para las hormigas, también) y dejar que PropertyPlaceholderConfigurer uso de la primavera los mismos archivos de propiedades en tiempo de ejecución. De esta manera todo está donde debe estar (después de todo, el mejor lugar para las propiedades es un archivo .properties).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top