繁体   English   中英

Spring上下文:布尔值的属性占位符

[英]Spring context:property-placeholder for a boolean value

我正在开发一个应用程序,其中有两个都实现一个公共接口的类。 因此,在进行bean声明时,我将在我的app-context.xml文件中将其中一个标记为主要。 我可以这样简单地声明主bean来实现:

<bean id="oracleImpl" class="com.me.dao.OracleImpl" primary="true">
</bean>

现在,我不想硬编码哪个bean将成为主bean,而是想从属性文件中读取true / false值。 所以我就这样:

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

<bean id="oracleImpl" class="com.me.dao.OracleImpl" primary="${oracle.primary}">
</bean>

<bean id="pgsqlImpl" class="com.me.dao.PgsqlImpl" primary="${pgsql.primary}">
</bean>

oracle.primary和pgsql.primary的值与其他jdbc(非布尔型)属性一起在文件jdbc.properties中定义。

但是它不起作用,并说:“'$ {oracle.primary}'不是'boolean'的有效值”

我觉得这与xsd验证程序有关。 浏览该网站和谷歌给了我很多想法,但没有真正的解决方案。 有身体可以帮助吗?

这是行不通的。

从3.2.5.RELEASE开始,仅以下Bean定义要素支持属性占位符:

  • 父母名字
  • 豆类名称
  • 工厂bean名称
  • 工厂方法名称
  • 范围
  • 属性值
  • 索引构造函数参数
  • 通用构造函数参数

有关详细信息,请参见BeanDefinitionVisitorvisitBeanDefinition方法。 PlaceholderConfigurerSupport使用此方法。

我建议您在Spring Issue Management系统中创建功能请求。

PS:如果您创建问题,请在问题网址中添加评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM