0

我需要通过 spring applicationContext 配置进行外部化。我运行我的罐子:

java -jar myjar.jar --spring.config.location=file:///Users/nsarkar/temp/config/applicationContext.xml

spring 如何理解这个属性,我必须用什么来设置 ClassPathXmlApplicationContext 构造函数?

由于名称是由 spring 预定义的,spring 会自动知道位置吗?或者我们是否仍然必须传递从命令行参数获取的参数?

以下代码不起作用。

public class RestaurantPromoCooking {


public static void main(String[] args) {

    ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext();
    CookFood cookFood = classPathXmlApplicationContext.getBean("promoItem", CookFood.class);
    cookFood.cookItem();
}

}

我需要外部化我的配置。在互联网上,所有的建议都是在运行 jar 时使用该属性,而不是超出此范围。

提前致谢!!

4

1 回答 1

1

您可以像这样使用自定义属性

java -DmyContextLocation=/home/myuser/context.xml -jar myjar.jar

然后在代码中执行以下操作:

FileSystemXmlApplicationContext ctx = new FileSystemXmlApplicationContext("file:" + System.getProperty("myContextLocation");
于 2020-09-08T02:30:50.257 回答