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

В классе 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...