我正在处理一个服务,并试图从yaml文件中读取属性。即使设置了值,我也会在一些主题中得到一个空值。以下是yaml文件中的属性:
property-combos:
status:
- codigo: ATIVA
descricao: teste 1
- codigo: CONCLUIDA
descricao: teste 2
- codigo: EXPIRADA
descricao: teste 3
我正在阅读以下课程的roperty:
@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
所有这些属性都会发生这种情况
尝试过的解决方案:我´我试图更改变量和属性名,但总是在常量descripao中得到空值。
问题:可能会发生什么,我如何解决这个问题,谢谢。
2条答案
按热度按时间wa7juj8i1#
您在getter和setter中有拼写错误,请更改为以下内容:
如果将此依赖项添加到pom
可以使用
@Data
跳过能手/二传手。4ioopgfo2#
您在getdecricao和setdecricao中有代码错误,应该这样更正