Kotlin & Spring Boot @ConfigurationProperties

Как правильно инициализировать ConfigurationProperties в Spring Boot с Kotlin ?

В настоящее время мне нравится в следующем примере:

@ConfigurationProperties("app") class Config { var foo: String? = null } 

Но он выглядит довольно уродливым, и на самом деле foo не является var iable, foo является постоянным значением и должен быть инициализирован во время запуска и не изменится в будущем .

Как указано в документах : для использования ConfigurationProperties должен быть предоставлен « Java Bean ». Это означает, что ваши свойства должны иметь геттеры и сеттеры, поэтому val в данный момент невозможно.

Getters и seters обычно являются обязательными, поскольку привязка осуществляется через стандартные дескрипторы свойств Java Beans, как в Spring MVC. Есть случаи, когда сеттер может быть опущен […]

Для вашего случая использования существует открытая проблема, связанная с Kotlin: https://github.com/spring-projects/spring-boot/issues/8762

 @Value("\${some.property.key:}") lateinit var foo:String 

можно использовать таким образом

Intereting Posts
Котлин Синтетические свойства Как установить прослушиватель движения для существующего вида получение переопределения исключение Тип возвращаемого метода не должен включать переменную типа или подстановочный знак в котлин смеющийся отложенный ответ сервера Как добавить новую конфигурацию с помощью Gradle Script Kotlin? Перейдите к следующему действию в android Kotlin; Неразрешенная ссылка на класс Android Espresso – как запустить настройку только один раз для всех тестов Есть ли простой способ увидеть, какие исключения выбрала функция Котлина? Saripaar formvalidation не работает второй раз в котлине Различные целевые позиции при использовании разных размеров вида с помощью ObjectAnimator Как отменить булевское выражение при использовании оператора elvis в котлин? Kotlin: передать массив методу varargs с оператором распространения Kotlin конвертирует TimeStamp в DateTime Android Studio не выполняет рефакторинг «только для чтения» kapt сгенерированный код Настройка установщика интерфейса в классе, реализующего его