我正在将一个项目升级到Spring Boot 2.2.6。在编译错误之后,将yaml属性数据绑定到对象列表-
**请注意,该项目是在我使用的以前版本的spring boot(2.2.1)中编译的**
JAVAlang.IllegalStateException:未能加载ApplicationContext,原因是:org。springframework。靴子上下文属性。ConfigurationPropertiesBindException:创建名为“webUiApplication”的bean时出错。状态“:无法将属性绑定到“WebUiApplication”。状态:前缀=状态,ignoreInvalidFields=false,ignoreUnknownFields=true;嵌套异常为org。springframework。靴子上下文属性。绑定BindException:无法在“”状态下绑定属性。默认值为java。util。列表
应用yml公司
states:
defaults:
-
postal-code: AL
name: Alabama
-
postal-code: AK
name: Alaska
-
postal-code: AZ
name: Arizona
@Data
@Configuration
@ConfigurationProperties("states")
public static class States {
private List<State> defaults;
private List<State> docVerify;
private List<State> registration;
}
波约
@Data
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@ToString(onlyExplicitlyIncluded = true)
public class State implements ListOption {
public static final Comparator<State> DISPLAY_COMPARATOR = new ListOption.DisplayComparator<>();
@NonNull private final String postalCode;
@NonNull private final String name;
@Override
@EqualsAndHashCode.Include
public String getValue() {
return this.postalCode;
}
@Override
@ToString.Include
public String getLabel() {
return String.format("%s - %s", postalCode, name);
}
}
遇到过成员收到类似问题但无法解决的帖子。期待您的投入。
重构代码:
国家:
@Data
@Configuration
@ConfigurationProperties("states")
@ToString
@NoArgsConstructor
public class States {
private List<State> defaults;
private List<State> docVerify;
private List<State> registration;
}
国家:
@Data
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@ToString(onlyExplicitlyIncluded = true)
@NoArgsConstructor
public class State {
@NonNull
private String postalCode;
@NonNull
private String name;
@EqualsAndHashCode.Include
public String getValue() {
return this.postalCode;
}
@ToString.Include
public String getLabel() {
return String.format("%s - %s", postalCode, name);
}
}
application.yaml
states:
defaults:
-
postal-code: AL
name: Alabama
-
postal-code: AK
name: Alaska
-
postal-code: AZ
name: Arizona
我们需要有一个空对象,然后用数据填充它。这就是为什么我们不需要args构造函数。
问题内容: 通过运行以下命令,我刚刚从6 升级到Babel 7: 这是我的文件: 然后我跑了: 结果是: 我做错什么了? 问题答案: 在您的文件中,更改 至 (如果尚未安装,请安装该软件包)。 在您仍在引用程序包(适用于6.x)的情况下,您想要引用(对于7.x适用)。 https://github.com/babel/babel/issues/6186#issuecomment-366556833
问题内容: 我要返回一个Mongoose文档,并希望在发送之前向其中添加一些元数据。但是,我无法添加任何属性,我不确定为什么。我检查了它是否可以使用Object.isExtensible(doc)扩展。 可能是什么问题? 问题答案: 啊..我的对象是一个Mongoose文档,不允许添加属性。解决方案是将返回的文档转换为普通对象,或者在查询中调用lean()。
我知道如果我把属性放在。yml文件如下: 我可以将它们绑定到java。util。列出或设置类型。如果yaml属性如下: 我可以把它绑在地图上。我想知道是否可以将yml属性绑定到映射
我有以下代码: 生日属性的类型为java.time。LocalDate,并且属于类Person。因为我使用JPA,所以我不想使用JavaFX属性。上述代码无法编译。编译器的错误消息是: 我该如何解决这个问题? 更新:我的个人类具有以下代码: 控制器类:
我正在尝试将yml文件映射到Spring boot应用程序中具有字符串键和PromotionPolicy值的HashMap,并使用默认的Spring boot实现来解析这些值,但当我尝试从映射中读取值时,PromotionPolicy对象只包含所有实例的默认值[0,false,false]。 我的yml是: 我拥有的模型是: 组件java类如下: 尝试在此处显示值: 我的输出如下: 而我希望结果包
问题内容: 我有一个JSON对象,说: 我想将其绑定到Java对象中,例如: 如何将JSON 的值设置为Java对象中的字段? 我尝试使用来注释字段,但是那样行不通。 问题答案: 这不是完美的方法,但这是我能找出的最优雅的方法。