首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Spring中,我可以将null设置为@Value的默认值吗?

在Spring中,我可以将null设置为@Value的默认值吗?
EN

Stack Overflow用户
提问于 2012-08-17 00:00:40
回答 3查看 104.5K关注 0票数 126

我目前正在使用@Value Spring 3.1.x注释,如下所示:

代码语言:javascript
复制
@Value("${stuff.value:}")
private String value;

如果属性不存在,这会将一个空字符串放入变量。我希望使用null作为默认值,而不是空字符串。当然,我也希望避免在未设置属性stuff.value时出现错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-17 02:47:31

您必须设置PropertyPlaceholderConfigurer的nullValue。在本例中,我使用了字符串@null,但是您也可以使用空字符串作为nullValue。

代码语言:javascript
复制
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <!-- config the location(s) of the properties file(s) here -->
    <property name="nullValue" value="@null" />
</bean>

现在您可以使用字符串@null来表示null

代码语言:javascript
复制
@Value("${stuff.value:@null}")
private String value;

请注意: context名称空间目前不支持空值。你不能使用

代码语言:javascript
复制
<context:property-placeholder null-value="@null" ... />

使用Spring 3.1.1进行测试

票数 76
EN

Stack Overflow用户

发布于 2015-11-13 14:47:20

这真的很老了,但是你现在可以用Spring EL了,例如

@Value("${stuff.value:#{null}}")

参见this question

票数 270
EN

Stack Overflow用户

发布于 2020-06-16 20:32:39

如果您需要注入一个空(0长度) "“字符串作为@Value默认值-使用SPEL (spring表达式语言),如下所示:

代码语言:javascript
复制
@Value("${index.suffix:#{''}}") 
private String indexSuffix;

#{''}只会得到一个空字符串,作为injected @Value的默认值。

按yl

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11991194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档