首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法在Spring XML中指定默认属性值?

有没有办法在Spring XML中指定默认属性值?
EN

Stack Overflow用户
提问于 2010-03-25 14:26:49
回答 5查看 141.6K关注 0票数 95

我们在Spring配置(details here)中使用PropertyPlaceholderConfigurer来使用java属性。

例如:

代码语言:javascript
复制
<foo name="port">
  <value>${my.server.port}</value>
</foo>

我们想要添加一个额外的属性,但是有一个分布式系统,其中现有的实例都可以使用默认值。有没有一种方法可以避免更新我们所有的属性文件,当没有定义覆盖属性值时,在Spring配置中指定一个默认值?

EN

回答 5

Stack Overflow用户

发布于 2010-03-29 07:07:57

Spring3支持${my.server.port:defaultValue}语法。

票数 285
EN

Stack Overflow用户

发布于 2014-06-27 00:40:57

有一个鲜为人知的特性,这使得这一点变得更好。您可以使用可配置的默认值,而不是硬编码的默认值,下面是一个示例:

config.properties:

代码语言:javascript
复制
timeout.default=30
timeout.myBean=60

context.xml:

代码语言:javascript
复制
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>config.properties</value>
    </property>
</bean>

<bean id="myBean" class="Test">
    <property name="timeout" value="${timeout.myBean:${timeout.default}}" />
</bean>

要在使用默认设置的同时仍能在以后轻松覆盖,请在config.properties中执行以下操作:

代码语言:javascript
复制
timeout.myBean = ${timeout.default}
票数 35
EN

Stack Overflow用户

发布于 2012-10-02 23:32:41

代码语言:javascript
复制
<foo name="port">
   <value>${my.server.port:8088}</value>
</foo>

应该可以将8088作为默认端口

另请参阅:http://blog.callistaenterprise.se/2011/11/17/configure-your-spring-web-application/

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2513484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档