Kotlin spring-boot @ConfigurationProperties

Estoy intentando crear el siguiente bean AmazonDynamoDBAsyncClientProvider . Tengo application.properties que define el endpoint y tablePrefix que bash inyectar usando @ConfigurationProperties

Lo siguiente es el fragment de código para el mismo. Cuando ejecuto mi aplicación Spring-boot, no funciona.

Intenté hacer la misma class ConfigurationProperties utilizando una class java normal que establece esas properties, pero cuando se trata de AmazonDynamoDBAsyncClientProvider , las properties están vacías. ¿Que me estoy perdiendo aqui?

 @Component open class AmazonDynamoDBAsyncClientProvider @Autowinetworking constructor(val dynamoDBConfiguration: DynamoDBConfig){ @Bean open fun getAmazonDBAsync() = AmazonDynamoDBAsyncClientBuilder.standard() .withEndpointConfiguration( AwsClientBuilder.EndpointConfiguration(dynamoDBConfiguration.endpoint, dynamoDBConfiguration.prefix)) .build() } 

aquí está el grano de kotlin que estoy intentando conectar automáticamente con la configuration

 @Component @ConfigurationProperties(value = "dynamo") open class DynamoDBConfig(var endpoint: String="", var prefix: String="") 

finalmente aquí está el bean Java regular que sí se llena con ConfigurationProperties pero cuando se Autowinetworking veo que esas properties están vacías / nulas

 @Component @ConfigurationProperties("dynamo") public class DynamoDBConfiguration { private String endpoint; private String tablePrefix; public String getEndpoint() { return endpoint; } public void setEndpoint(String endpoint) { this.endpoint = endpoint; } public String getTablePrefix() { return tablePrefix; } public void setTablePrefix(String tablePrefix) { this.tablePrefix = tablePrefix; } } 

¿Has intentado deshacerte de la anotación @Component en tu class ConfigurationProperties?

Esto es lo que hice con Kotlin y Spring, espero que ayude.

Estoy tratando de aprovechar el plugin kotlin-spring y kotlin-allopen gradle

 dependencies { classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlinVersion" classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion" } apply plugin: 'kotlin-spring' apply plugin: 'kotlin-noarg' noArg { annotation("your.noarg.annotation.package.NoArg") } 

Hacen que el desarrollo de spring con kotlin sea mucho más fácil.

 @ConfigurationProperties("dynamo") @NoArg data class DynamoDBConfiguration(var endpoint: String, var prefix: String) 
  • Diferencia sutil cuando se ejecuta en intellij y ejecutando jar
  • Spring Annotation no funciona en Kotlin
  • Spring Boot no actualiza el html estático (con Kotlin / Intellij)