5

我想编写一个 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();
}

应用程序上下文.xml:

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

如何将配置文件名从我的 main 方法转移到实际的 spring 上下文中,以便我可以加载正确的环境相关属性?

4

1 回答 1

7

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

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

然后在 applicationContext.xml 文件中

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

希望这能解决您的问题。

于 2012-08-07T10:11:36.363 回答