如何从Spring应用程序上下文xml使用varargs?
java -jar my.jar --variable=value
application-context.xml
<bean id="fooClassInstance" class="my.package.FooClass">
<property name="myproperty" value="${variable}" />
</bean>
答案 0 :(得分:3)
尝试使用系统属性:
java -Dvariable=value -jar my.jar
这可以立即使用,或者您需要告诉应用程序上下文在扩展变量时查看系统属性。自从我尝试过已经有一段时间了。
一个好的起点是PropertySourcesPlaceholderConfigurer
。
答案 1 :(得分:1)
当您在Spring XML配置中执行类似的操作
<bean id="fooClassInstance" class="my.package.FooClass">
<property name="myproperty" value="${variable}" />
</bean>
Spring使用PropertyPlaceholderConfigurer
在系统/环境变量和/或预定义属性文件列表中搜索那些变量。
最简单的方法是使用-Dvariable=value
将该值作为系统或环境变量传递。
如果您要将这些值作为参数传递给min
,您仍然可以进行类似的黑客攻击
public static void main(String[] args) {
// parse arguments into key, value pairs
System.setProperty(<key>, <value>);
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(<your XML config file>);
// use Spring context to get beans
}