You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot @Value SPEL注入yml配置缺省时设置默认值异常问题

问题原因

你当前使用的${}内写三目运算符的写法不符合Spring属性占位符的解析规则,Spring属性占位符仅支持${属性名:默认值}的原生默认值声明语法,你写的自定义三目逻辑在属性值存在时会被错误解析,导致始终返回默认值false。

解决方案

直接使用Spring属性占位符的原生默认值语法即可满足需求:当对应属性不存在、值为null时自动注入默认值,属性存在时读取配置的实际值。
修改后的注入代码如下:

@Value("${security.disable:false}")
private Boolean securityDisable;
验证效果
  • 当yml中security.disable未配置、或配置值为null(即disable:后无内容)时,会自动注入默认值false
  • 当yml中配置security.disable: true时,会正常读取配置值true注入

如果需要实现更复杂的判断逻辑才需要使用SpEL表达式,写法为将逻辑包裹在#{}中:

// 复杂逻辑场景示例,当前场景无需使用该写法
@Value("#{${security.disable:false}}")
private Boolean securityDisable;

注意:yml中配置布尔值时无需添加引号,直接写true/false即可避免类型转换问题。

内容的提问来源于stack exchange,提问作者VSVDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 20:33:00