当前位置: 首页 > 面试题库 >

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

章学义
2023-03-14
问题内容

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

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

如果属性不存在,则将空字符串放入变量中。我想将null作为默认值,而不是一个空String。当然,当未设置属性stuff.value时,我也想避免发生错误。


问题答案:

您必须设置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;

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

<context:property-placeholder null-value="@null" ... />

在Spring 3.1.1中测试



 类似资料:
  • 我目前使用的@Value Spring 3.1.x注释如下所示: 如果属性不存在,这会将一个空字符串放入变量中。我希望将null作为默认值,而不是空字符串。当然,我还希望避免在未设置属性stuff.value时出现错误。

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

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

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

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

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