¿Propiedades externas del contexto de la aplicación de spring?

tengo una aplicación Spring y está funcionando bien hasta el momento. Ahora quiero que el archivo de propiedades en una carpeta de configuración externa y no en el contenedor empaquetado cambie las cosas sin la necesidad de reempaquetar. Esto es lo que conseguí:

 <!--  -->  

El outcommented está funcionando y el otro no funciona: / ¿Alguien puede ayudar?

Editar: Thx 4 comentarios hasta el momento.

Tal vez mi pregunta no era lo suficientemente clara :). Realizo una comstackción de Maven y todo estará empaquetado y quiero que esta carpeta NO esté en la tuerca del paquete al lado del flask de salida y en esta carpeta quiero el archivo de propiedades. ¿posible?

  

Si lo coloca en algún lugar de la ruta de clases en un directorio llamado spring (cambie los nombres / directorios en consecuencia), puede acceder a la información anterior.

  

esto apuntará a web-inf / classes / config / springcontext.properties

Puedes probar algo como esto:

  

Y defina la propiedad ext.properties.dir en su servidor de aplicaciones / jvm; de lo contrario, se usaría la ubicación predeterminada de las propiedades “classpath: /” (es decir, las clases dir de .jar o .war):

 -Dext.properties.dir=file:/usr/local/etc/ 

Por cierto, publicación de blog muy útil.

Puede usar el prefijo de archivo para cargar el archivo de contexto de la aplicación externa algo como esto

   

Este blog puede ayudarte. El truco es usar SpEL (lenguaje de expresión de spring) para leer las propiedades del sistema como user.home , para leer el directorio de inicio del usuario usando SpEL, puedes usar
#{ systemProperties['user.home']} expresión dentro de los elementos de tu bean. Por ejemplo, para acceder a su archivo de propiedades almacenado en su directorio personal, podría usar lo siguiente en su PropertyPlaceholderConfigurer, funcionó para mí.

    file:#{ systemProperties['user.home']}/ur_folder/settings.properties   

Esta pregunta es algo antigua, pero quería compartir algo que funcionó para mí. Espero que sea útil para las personas que están buscando información para acceder a las propiedades en una ubicación externa.

Esto es lo que me ha funcionado.

  1. Contenido del archivo de propiedad:

     PROVIDER_URL=t3://localhost:8003,localhost:8004 
  2. Contenido del archivo applicationContext.xml : (Spring 3.2.3)

    Nota: ${user.home} es una propiedad del sistema del sistema operativo.

         weblogic.jndi.WLInitialContextFactory ${PROVIDER_URL}    

${PROVIDER_URL} fue reemplazado por el valor en las propiedades del archivo

Una forma de hacerlo es agregar su carpeta de configuración externa al classpath del proceso java. Así es como lo he hecho a menudo en el pasado.

  

Esto funciona para mí La ruta de la máquina de desarrollo local es C: \ apps \ tomcat \ ath \ ath_conf y en server / apps / tomcat / ath / ath_conf

Ambos funcionan para mí