我有一个spring config文件,其中包含以下元素:

<context:property-placeholder location="classpath:default.properties"/>

<bean id="theVar" class="java.lang.String">
    <constructor-arg value="${varName}"/>
</bean>

现在,“varName”已从属性文件移至系统属性。启动Maven构建时将其添加:
mvn clean install -DvarName=data

我还想在不指定varName的情况下运行我的构建:
mvn clean install

在我的spring配置中有什么方法可以默认varName吗?尽管这不起作用,但我正在寻找的概念性示例是:
<bean id="theVar" class="java.lang.String">
    <constructor-arg value="${varName}" default="theDefaultValue"/>
</bean>

最佳答案

Spring 3.0.x支持如下语法:

value="${varName:defaultValue}"

引用:
  • SPR-4785
  • Changes in version 3.0.0.RC1 (2009-09-25)(PropertyPlaceholderConfigurer支持“$ {myKey:myDefaultValue}”默认语法)
  • 关于spring - 我可以在spring config文件中默认构造器参数的系统属性吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9436218/

    10-11 00:41