【发布时间】:2016-04-06 20:41:04
【问题描述】:
我在 Java 代码中对我的属性有以下定义:
import org.springframework.beans.factory.annotation.Value;
...
@Value("#{sdProperties['is.test.server'] ?: false }")
private boolean isTestServer = false;
在我的 XML 配置文件中:
<util:properties id="sdProperties">
<prop key="sdzootest.server.url">${sdzootest.server.url}</prop>
<prop key="is.test.server">${is.test.server}</prop>
</util:properties>
如果属性文件中没有指定is.test.server,我仍然会收到错误消息:
2016-04-06 15:52:00,161 [localhost-startStop-1] 错误 com.elasticpath.web.context.impl.EpContextConfigListener:69 - 捕获 一个例外。 org.springframework.beans.factory.BeanDefinitionStoreException: 无效的 bean 定义,名称为 sdProperties 在 null 中定义:可能 不解析字符串值中的占位符“is.test.server” "${is.test.server}"
【问题讨论】:
-
我猜你需要
<prop key="is.test.server">${is.test.server}</prop>的默认值。试试<prop key="is.test.server">${is.test.server:default}</prop>