spring xml中的默认占位符值

Posted

技术标签:

【中文标题】spring xml中的默认占位符值【英文标题】:Default placeholder value in spring xml 【发布时间】:2012-05-04 21:54:50 【问题描述】:

在我们的特定应用程序中,db.properties 文件由 3d 方提供。根据配置,此属性文件可以包含或不包含 db.schema 属性。因此,如果没有 db.schema 属性,则 db.username 必须用于 hibernate.default_schema 属性。

如果 db.schema 不存在,占位符 $db.schema:db.username 不会检索 db.username 的值,因此传播“db.schema”值而不是实际(即 dba)值。

所以,问题是:如果 db.schema 不存在(假设 db.username 始终存在),如何传播 db.username 的默认值?

<util:properties id="specificHibernateProperties">
    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.hbm2ddl.auto">update</prop>
    <prop key="hibernate.default_schema">$db.schema:db.username</prop>
</util:properties>

【问题讨论】:

【参考方案1】:

在 Spring 3 中,应该可以使用嵌套占位符。 所以请试试这个:

$db.schema:$db.username

/rgrds

【讨论】:

我很怀疑,但我试过了,它确实有效。不错!

以上是关于spring xml中的默认占位符值的主要内容,如果未能解决你的问题,请参考以下文章

如果 Spring Boot 的属性文件中未提供占位符值,如何跳过?

如何默认 formik 日期和时间字段以显示占位符值

是否可以从外部 Maven 依赖项在 Spring Java 项目中导入占位符值 (@Value)?

如何检查所有弹簧占位符是不是存在?

用 pom.xml 中的值替换占位符名称

文本框的占位符值不会更改为原始值?