2012-08-07 12 views
5

Quiero escribir un programa de línea de comandos de primavera que se inicializa con un archivo de propiedades que se pasa como parámetro de línea de comandos. ¿Cómo se puede hacer eso?Cargar propiedades para el contexto de primavera desde la línea de comandos

clase de inicio:

public static void main (String [] args) { 
    String configFilename = args[0]; 
    ApplicationContext ctx = new ClassPathXmlApplicationContext(
     "classpath:/context/applicationContext.xml"); 
    MyBean bean = ctx.getBean(MyBean.class); 
    bean.getStarted(); 
} 

applicationContext.xml:

<context:property-placeholder location="CONFIGFILENAME" ignore-unresolvable="true"/> 

¿Cómo consigo el nombre del archivo de configuración relevo de mi método principal para el contexto real de la primavera para que pueda cargar la correcta propiedades dependientes del entorno?

+2

En su lugar, podría utilizar un argumento JVM: http://stackoverflow.com/questions/5598217/how-do-i-read-jvm-arguments-in-the-spring-applicationcontext-xml – DB5

Respuesta

6

En su caso, se podría establecer una propiedad mejor sistema para la localización de propiedades de archivos

System.getProperties().setProperty("location", args[0]); 

Luego, en applicationContext.xml archivo

<context:property-placeholder location="${location}" ignore-unresolvable="true"/> 

Hope esto va a resolver su problema.

Cuestiones relacionadas