【发布时间】:2013-05-29 18:51:04
【问题描述】:
这令人困惑。我有一个属性 outerParameter,它在启动 tomcat 时在 VM 选项中是可选的。我在我的逻辑中通过以下方式使用它:
@Value("${outerParameter:paused}")
private String featureStatus = "active";
public String getFeatureStatus() {
return featureStatus;
}
在没有参数的情况下启动 tomcat - getFeatureStatus 给出“暂停”,正如预期的那样。从定义的参数开始时 - 如预期的那样给出此参数值。
令人困惑的部分是,当我为 getFeatureStatus 运行 JUnit 测试时,它无论如何都会给我“活动”而不是默认的“暂停”。测试的上下文不包含任何 <context:property-placeholder../> 配置。
我正在努力了解我错过了什么,也许有人可以帮帮我
我发现了这个: Spring @Value annotation not using defaults when property is not present 这也可能是我的情况的答案。它说“可能由于缺少属性文件而导致属性占位符配置器的初始化失败,因此无法解析占位符”。 但是如果是这样,为什么在没有定义outerParameter的情况下启动tomcat不会失败?
谢谢
【问题讨论】:
-
可以分享一下tomcat加载的上下文文件吗?
标签: spring properties junit