繁体   English   中英

从 spring 引导中的 yaml 获取属性列表中的 null 值

[英]Getting null value in property list from yaml in spring boot

我正在开发一项服务并尝试从 yaml 文件中读取属性。 即使设置了值,我也会在某些人身上得到 null。 这是 yaml 文件中的属性:

property-combos:
  status:
    - codigo: ATIVA
      descricao: teste 1
    - codigo: CONCLUIDA
      descricao: teste 2
    - codigo: EXPIRADA
      descricao: teste 3

我正在阅读以下课程的绳索:

@Component
@ConfigurationProperties("property-combos")
@Validated
public class StatusProperites {

    @Valid
    protected final List<StatusDataItemProperties> status = new ArrayList<>();

    public List<StatusDataItemProperties> getStatus() {
        return status;
    }
}

这是 POJO

@Validated
public class StatusDataItemProperties {

    @NotNull
    protected String codigo;

    @NotNull
    protected String descricao;

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getDecricao() {
        return descricao;
    }

    public void setDecricao(String descricao) {
        this.descricao = descricao;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof StatusDataItemProperties)) return false;
        StatusDataItemProperties that = (StatusDataItemProperties) o;
        return Objects.equals(getCodigo(), that.getCodigo()) &&
                Objects.equals(getDecricao(), that.getDecricao());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getCodigo(), getDecricao());
    }
}

这是我从中获取值的组件:

@Component
public class StatusTransacaoComponent {

 

       private static final Logger LOG = LoggerFactory.getLogger(StatusTransacaoComponent.class);
        private static final String SUCESSO = "000";
    
        @Autowired
        StatusProperites statusProperites;
    
        public List<StatusDataItemProperties> getStatusCombo(){
            return statusProperites.getStatus();
        }
    
    }

问题:问题是应用程序启动时读取属性,但值如下:

codigo: ATIVA
descricao: null

所有这些属性都会发生这种情况

尝试过的解决方案:我尝试更改变量和属性名称,但总是在常量描述中获得 null 值。

问题:可能会发生什么,我该如何解决,谢谢。

你的getter和setter有错别字,请改成如下:

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

如果您将此依赖项添加到您的 POM

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

您可以使用@Data注释您的数据 class 并跳过 getter/setter。

您在 getDecricao 和 setDecricao 中有代码错误,应该像这样更正

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM