在 ConfigurationProperties 类中,我有一个这样的地图:
@ConfigurationProperties(prefix = "some")
public class SomeConfigurationProperties {
private Map<String, SomeClass> map = new HashMap<>();
...
}
而且我希望提到的SomeClass
所有字段都是final,所以我必须实现非默认构造函数,我对此很好。不是,是弹簧初始化程序,所以在开始应用程序之前,我收到了这个错误:
Caused by: java.lang.NoSuchMethodException: some.package.SomeClass.<init>()
我无法在 SomeClass 中设置默认构造函数,因为我将未初始化最终字段:
The blank final field somefield may not have been initialized
我应该如何使用无默认构造函数设置 bean SomeClass 的初始化,但如果它可以没有 XML Spring 配置,因为我正在使用 Spring Boot 并且不想搞砸。
更新: SomeClass 的示例:
public class SomeClass {
private final int field1;
private final String field2;
// no default constructor
public SomeClass(field1, field2) {
this.field1 = field1;
this.field2 = field2;
}
// getters & setters
}