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

Spring Boot 2.4.2下YAML配置布尔属性@Value注入不识别报错

问题根因

报错的核心原因是Lombok的@AllArgsConstructor注解生成全参构造函数时,默认不会将字段上的@Value注解复制到对应的构造参数上。Spring在执行构造注入时,识别不到该参数需要从配置文件读取值,会默认尝试注入容器中类型为Boolean的Bean,容器中没有对应Bean就抛出了找不到Bean的异常。
你观察到的两个List类型属性注入正常只是巧合,大概率是项目中刚好存在同类型的List<String> Bean被Spring容器管理,Spring直接注入了该Bean,并没有读取你配置文件里的收件人配置,可以自行校验注入值是否和配置一致确认。

解决方案

方案1:配置Lombok复制@Value注解

这是改动最小的方案,不需要修改现有业务代码:

  1. 在项目根目录(和src文件夹同级)新建名为lombok.config的配置文件
  2. 加入如下配置:
lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Value
  1. 重新编译项目即可生效。
    该配置会告诉Lombok,生成构造函数、setter等方法时,需要将字段上的@Value注解复制到对应的参数上,Spring就能正常识别参数需要读取配置值,完成注入。

方案2:手动编写构造函数

去掉类上的@AllArgsConstructor注解,手动编写构造函数,将@Value注解放到构造参数上:

// 移除@AllArgsConstructor注解
private final Boolean isFeatureActive;
private final List<String> emailRecipientsDevelopers;
private final List<String> emailRecipientsAdmins;

public CronJob(@Value("${perscel.mail.featuretoggle}") Boolean isFeatureActive,
               @Value("#{'${perscel.mail.recipients.developers}'.split(',')}") List<String> emailRecipientsDevelopers,
               @Value("#{'${perscel.mail.recipients.admins}'.split(',')}") List<String> emailRecipientsAdmins) {
    this.isFeatureActive = isFeatureActive;
    this.emailRecipientsDevelopers = emailRecipientsDevelopers;
    this.emailRecipientsAdmins = emailRecipientsAdmins;
}

方案3:改用@ConfigurationProperties批量加载配置

针对同一前缀的多配置项场景,更推荐使用配置类加载,代码更整洁,也不会出现@Value和Lombok的兼容问题:

  1. 定义配置类:
@ConfigurationProperties(prefix = "perscel.mail")
@Data
public class MailProperties {
    private Boolean featuretoggle;
    private Recipients recipients;

    @Data
    public static class Recipients {
        private List<String> developers;
        private List<String> admins;
    }
}
  1. 在启动类或者任意配置类上添加@EnableConfigurationProperties(MailProperties.class)注解,启用配置类扫描
  2. 在需要使用配置的类中直接注入MailProperties即可:
// 保留@AllArgsConstructor即可,直接注入配置类
private final MailProperties mailProperties;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:15:04