从命令行加载spring上下文的属性

时间:2012-08-07 09:34:56

标签: java spring parameter-passing command-line-arguments

我想编写一个spring命令行程序,该程序使用作为命令行参数传递的属性文件进行初始化。怎么办?

开始上课:

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

如何从主方法获取配置文件名到实际弹簧上下文,以便我可以加载正确的环境相关属性?

1 个答案:

答案 0 :(得分:6)

在您的情况下,您可以更好地为属性文件位置设置系统属性

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

然后在applicationContext.xml文件中

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

希望这能解决您的问题。