java - Spring中的NotWritablePropertyException错误

标签 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;
    }

一切顺利。我不知道为什么会出现这个错误。 有人可以帮忙吗?

最佳答案

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;

关于java - Spring中的NotWritablePropertyException错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39737637/

相关文章:

java - twitter 的 Future.trace() 方法有什么用?

java - 如何使用 Gradle java 插件将 "illegal-access=deny"传递给单元测试的 JVM 参数?

java - 检查其他两个日期之间的日期 Spring 数据jpa

java - Spring 4.3.7 抛出 java.lang.NoClassDefFoundError : com/fasterxml/jackson/core/util/DefaultIndenter

Spring - 如何销毁原型(prototype)范围的 bean?

spring - 无法解析 Spring 属性占位符

spring - 使用Spring Boot配置Spring Security

使用 MongoDB 的 Spring Social 和 Spring Security

java - Spring MVC 基于 xml 的配置到注释

java - 在 ubuntu 10.04 上安装 openjdk-7-jre - 包 openjdk-7-jre 没有安装候选