当前位置: 首页 > 知识库问答 >
问题:

我可以将null设置为Spring中@value的默认值吗?

卫振
2023-03-14

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

@Value("${stuff.value:}")
private String value;

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

共有1个答案

夏祺然
2023-03-14

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

<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

@Value("${stuff.value:@null}")
private String value;

请注意:上下文名称空间目前不支持空值。你不能用

<context:property-placeholder null-value="@null" ... />
 类似资料:
  • 问题内容: 我目前正在使用@Value Spring 3.1.x注释,如下所示: 如果属性不存在,则将空字符串放入变量中。我想将null作为默认值,而不是一个空String。当然,当未设置属性stuff.value时,我也想避免发生错误。 问题答案: 您必须设置PropertyPlaceholderConfigurer的nullValue 。例如,我使用的是字符串,但您也可以将空字符串用作null

  • 我尝试使用liquibase使用liquibase“addDefaultValue”语法将我的列的默认值设置为null: 但是向myTable插入新行显示默认值仍然设置为“false”,就像以前一样。所以liquibase更改集不起作用。 如何设置列默认值为null与liquibase?

  • 我试图设置可变投掷SpEL在Spring启动应用程序: 应该来自应用程序-{profile}。财产。但是字段始终为空,即使已存在。 带有的代码可以正常工作,但包含空字符串。 我的问题是,如果使用SpEL的属性不存在,如何将null设置为variable。 upd:值来自特定于配置文件的属性文件

  • 我在spring-boot项目中有一个properties类。 现在,我想将的application.properties文件中的其他属性设置默认值。与下面的示例使用@value所做的类似

  • 问题内容: 我正在运行一个非常简单的查询,但是对于某些结果,一个字段中的值为空。如果该值为null,如何将其设置为“字符串”? 就像是 它将在sql server 2005上运行 谢谢 问题答案: 使用以下内容: 或@Lieven指出: COALESCE的动态之处在于您可以定义更多的参数,因此,如果第一个为null,则获取第二个参数,如果第二个为null,则获取第三个,依此类推…

  • 在SpringMVC中是否可以将默认值设置为@PathVariable? 在这种情况下。如果我访问没有pageNumber的页面,我希望将默认值设置为1。