【发布时间】:2016-10-05 09:13:10
【问题描述】:
我有一个用 @Value 注释的属性,通常从 context.xml (jndi/tomcat) 填充
@Value("${some.property}")
private String property
这工作正常,但我们安装了我们的软件,不应该配置该属性。
但是,如果缺少该属性,我会得到一个javax.naming.NameNotFoundException: Name [some.property] is not bound in this Context. Unable to find [some.property].,这是合乎逻辑的。
我尝试通过这种方式添加默认值来解决此问题:
@Value("${some.property:some_property_not_configured}")
private String property
但是,我仍然遇到同样的错误。
任何想法如何防止/解决这个问题?
我想在 Spring 3.2.x 和 Spring 4+ 环境中使用它。 注解 @Value 从 Spring 3+ 开始可用
更新: 问题不在于@Value 注释,而在于 app-config.xml
<entry key="some.property">
<jee:jndi-lookup jndi-name="java:comp/env/some.property" />
</entry>
这导致了启动时的错误!
但是,如果我在这里添加default-value="something",它仍然会失败并出现同样的错误
【问题讨论】:
-
您是否验证过您的 some_property_not_configured 是有效的 jndi 名称
标签: spring properties annotations jndi default-value