TER*_*ytE 5 spring constructor properties maven
我有一个spring配置文件,其中包含以下元素:
<context:property-placeholder location="classpath:default.properties"/>
<bean id="theVar" class="java.lang.String">
<constructor-arg value="${varName}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
"varName"现在从属性文件移动到系统属性.它在我启动Maven构建时添加:
mvn clean install -DvarName=data
Run Code Online (Sandbox Code Playgroud)
我想在不指定varName的情况下运行我的构建:
mvn clean install
Run Code Online (Sandbox Code Playgroud)
有没有办法在我的spring配置中默认varName?虽然这不起作用,但我正在寻找的一个概念性例子是:
<bean id="theVar" class="java.lang.String">
<constructor-arg value="${varName}" default="theDefaultValue"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
Spring 3.0.x支持这样的语法:
value="${varName:defaultValue}"
Run Code Online (Sandbox Code Playgroud)
参考文献:
事实证明,在spring v2.5+中,如果定义了系统属性,则可以使用它来代替属性文件中定义的属性。您只需确保使用相同的名称并启用“覆盖”选项即可。
例如,给定:
<!-- my spring config file -->
<context:property-placeholder location="classpath:default.properties" system-properties-mode="OVERRIDE"/>
Run Code Online (Sandbox Code Playgroud)
和:
# default.properties file
theVariable=One
Run Code Online (Sandbox Code Playgroud)
当我执行时:
mvn clean install
Run Code Online (Sandbox Code Playgroud)
为变量选取“一”。如果我执行:
mvn clean install -DtheVariable=Two
Run Code Online (Sandbox Code Playgroud)
取而代之的是“二”。
归档时间: |
|
查看次数: |
5471 次 |
最近记录: |