2012-08-07 3 views
5

Ich möchte ein Spring-Befehlszeilenprogramm schreiben, das mit einer Eigenschaftendatei initialisiert wird, die als Befehlszeilenparameter übergeben wird. Wie kann das gemacht werden?Ladeeigenschaften für den Spring-Kontext über die Befehlszeile

Startklasse:

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"/> 

Wie kann ich den Konfigurationsdateinamen den eigentlichen Feder Kontext über von meiner Haupt-Methode erhalten, so dass ich die richtigen laden umweltabhängige Eigenschaften?

+2

Möglicherweise können Sie stattdessen ein JVM-Argument verwenden: http://stackoverflow.com/questions/5598217/how-do-i-read-jvm-arguments-in-the-spring-applicationcontext-xml – DB5

Antwort

6

In Ihrem Fall könnten Sie besser eine Systemeigenschaft für Eigenschaften Speicherort gesetzt

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

Dann in applicationContext.xml

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

Hoffnung Datei dies Ihr Problem lösen wird.

Verwandte Themen