【发布时间】:2013-10-29 11:44:49
【问题描述】:
我使用的是 Spring 3.0.5.RELEASE 版本,配置如下:
<bean id="advice.audit" class="com.mysite.SuperClass" abstract="${myproperty.from.file}"/>
我明白了:
${myproperty.from.file}' is not a valid value for 'boolean'
我怎样才能实现这种行为,或者也许有人会提供更好的从属性控制 bean 创建的想法。
升级到 Spring 3.1 不是一种选择,因此无法使用 Spring Profiles。
【问题讨论】:
-
你能说明 myproperty.from.file 是在哪里定义的吗?你确定它在上下文中吗?
-
属性在属性文件中定义,由Spring正确配置和加载。
-
我有点困惑,让 bean 首先是抽象的还是不基于属性的。您是否只是尝试基于属性文件有条件地包含 bean,基本上就像 Spring Profiles 给您的一样?您能否使用该属性来确定要包含两个文件中的哪一个,其中一个具有 bean,而另一个没有?或者让您的 bean 具有“启用”或不具有“启用”属性,并且让 bean 始终存在但并不总是做任何事情。
-
属性解析在 bean 初始化时完成。这要求属性可用。就个人而言,我在实现 BeanDefinitionRegistryPostProcessor 时遇到了问题。然后在读取属性之前初始化 bean,我得到了类似的错误。
-
Peter Cooper Jr.,我正在尝试有条件地包含或不包含 bean,就像 Spring 配置文件一样。对于 bean,我没有两种选择。我只想包括与否。 Bean 是第三方库,没有“启用”属性。
标签: java xml spring properties javabeans