Kotlin y Spring Boot @ConfigurationProperties

¿Cómo inicializar correctamente ConfigurationProperties en Spring Boot con Kotlin ?

Actualmente me gusta en el siguiente ejemplo:

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

Pero parece bastante feo y, en realidad, foo no es variable, es un val constante y debe inicializarse durante el inicio y no cambiará en el futuro .

Si echas un vistazo a los documentos , dice que debes proporcionar un "Java Bean" si quieres usar ConfigurationProperties . Esto significa que sus properties necesitan tener getters y setters, por lo que val no es posible desafortunadamente.

Los getters y setters son generalmente obligatorios, ya que el enlace se realiza a través de los descriptores de propiedad estándar de Java Beans, al igual que en Spring MVC. Hay casos en que un organismo incumplidor puede ser omitido […]

Hay un problema abierto relacionado con Kotlin para esto: https://github.com/spring-projects/spring-boot/issues/8762

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

podría ser utilizado de esta manera