В классе ConfigurationProperties у меня есть карта, подобная этой:
@ConfigurationProperties(prefix = "some")
public class SomeConfigurationProperties {
private Map<String, SomeClass> map = new HashMap<>();
...
}
И я хочу, чтобы в упомянутых SomeClass
все поля были final , поэтому мне пришлось реализовать no-defaultконструктор, и я в порядке с этим.Тот, кто не является весенним инициализатором, поэтому перед запуском приложения я получил эту ошибку:
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
}