由以下原因引起:org.springframework.beans.NotWritablePropertyException:Bean类[com.uz.SysConfig]的无效属性'isTestCtx':Bean属性'isTestCtx'是不可写的或无效的setter方法。 setter的参数类型是否与getter的返回类型匹配?

型号代码:

public class SysConfig {

    @Getter
    @Setter
    @Value("${isTestCtx}")
    private boolean isTestCtx;

    @PostConstruct
    public void init(){
        log.info(" isTestCtx: {}", isTestCtx);
    }
}


用龙目岛产生的代码,我可以看到

 public boolean isTestCtx() {
        return this.isTestCtx;
    }

    public void setTestCtx(boolean isTestCtx) {
        this.isTestCtx = isTestCtx;
    }


一切顺利。我不知道为什么会发生此错误。
有人可以帮忙吗?

最佳答案

Lombok生成的代码似乎是错误的(显然,它在此page底部的精美印刷中,尽管只提到了吸气剂)。

对于boolean属性isTextCtx,根据JavaBeans规范的预期getter和setter必须为:

public boolean isIsTestCtx() {
    return this.isTestCtx;
}

public void setIsTestCtx(boolean isTestCtx) {
    this.isTestCtx = isTestCtx;
}


将您的属性重命名为testCtx应该可以解决问题。

@Getter
@Setter
@Value("${isTestCtx}")
private boolean testCtx;

10-08 08:14