Estoy moviendo propiedades desde el archivo de configuración Spring a un archivo de propiedades independiente. Esto está incluido en el archivo de configuración conReferencia Archivo de propiedades de Spring utilizando la ruta relativa al archivo de configuración
<bean class="org.springframework.beans.factory.config.PropertyPlaceHolderConfigurer">
<property name="location" value="file:properties/${CONFIG_MODE}/service.properties" />
</bean>
En su forma actual, la ubicación del archivo de propiedades es relativa al directorio de trabajo actual del proceso del servidor.
Esto crea el requisito de que el proceso debe iniciarse desde un directorio de trabajo específico, y lo que es peor permite la posibilidad (remotamente admitida) de que pueda recoger un archivo de propiedades completamente diferente; por ejemplo, si se inició con el directorio de trabajo configurado en una versión anterior del servicio.
Me gustaría hacer referencia al archivo de propiedades usando una ruta que es relativa al directorio que contiene el archivo de configuración.
En cuanto a FileSystemResource, parece que createRelative podría ser lo que necesito, pero no puedo encontrar la forma de usarlo en el archivo de configuración.
Gracias,
Steve
Buena solución, gracias. El único problema (y admito que esto no es un problema grave) es que a veces es útil poder ver/editar el archivo de propiedades directamente, por ejemplo, en una situación de emergencia o hacer algunas pruebas rápidas. Tenerlo dentro del frasco no evita esto, pero lo hace un poco engorroso. – stevec
@stevec: No tiene que estar dentro de un archivo JAR, puede fácilmente estar dentro de un directorio del sistema de archivos que está en el classpath. – skaffman
Funcionará esto una vez que use '@Value (" $ {thing.inside.service.properties} ")'? –