由以下原因引起: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;
}
一切顺利。我不知道为什么会出现这种错误。
有人可以帮忙吗?
答案 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;