gpt4 book ai didi

spring - 如何将@Value 定义为可选

转载 作者:IT老高 更新时间:2023-10-28 13:01:22 35 4
gpt4 key购买 nike

我在 Spring bean 中有以下内容:

@Value("${myValue}")
private String value;

值被正确注入(inject)。但是,该变量需要是可选的,它作为命令行参数传入(然后使用 SimpleCommandLinePropertySource 添加到 Spring 上下文中),并且该参数不会总是存在。

为了提供默认值,我尝试了以下两种方法:

@Value("${myValue:}")
@Value("${myValue:DEFAULT}")

但在每种情况下,即使存在实际值,冒号后的默认参数也会被注入(inject) - 这似乎会覆盖 Spring 应该注入(inject)的内容。

指定不需要 @Value 的正确方法是什么?

谢谢

最佳答案

What is the correct way to specify that @Value is not required?

假设“不需要”是指 null 然后...

您已经正确地注意到您可以在 : 字符的右侧提供默认值。您的示例是 @Value("${myValue:DEFAULT}")

您不限于将纯字符串作为默认值。您可以使用SPEL表达式,返回 null 的简单 SPEL 表达式是:

@Value("${myValue:#{null}}")

关于spring - 如何将@Value 定义为可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23348061/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com