Spring中的NotWritablePropertyException错误

时间:2016-09-28 03:40:42

标签: java spring spring-mvc

由以下原因引起: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);
    }
}

使用lombok生成的代码,我可以看到

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

    public void setTestCtx(boolean isTestCtx) {
        this.isTestCtx = isTestCtx;
    }
一切顺利。我不知道为什么会出现这种错误。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

Lombok生成的代码似乎是错误的(显然它在page底部的精细打印中,虽然它只提到了getter)。

对于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;