Инициализация bean-компонента с конструктором по умолчанию и конечными полями в Spring Boot

В классе ConfigurationProperties у меня есть карта, как это:

@ConfigurationProperties(prefix = "some")
public class SomeConfigurationProperties {
    private Map<String, SomeClass> map = new HashMap<>();
...
}

И я хочу в упомянутом SomeClass все поля должны быть окончательными, поэтому мне пришлось реализовать конструктор не по умолчанию, и я в порядке с этим. Тот, кто не является весенним инициализатором, поэтому перед запуском приложения я получил эту ошибку:

 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
}

0 ответов