Kotlin spring-boot @ConfigurationProperties

Я пытаюсь создать следующий компонент AmazonDynamoDBAsyncClientProvider . У меня есть application.properties, который определяет endpoint и tablePrefix которые я пытаюсь ввести с помощью @ConfigurationProperties

Ниже приведен фрагмент кода для него. Когда я запускаю приложение для весенних загрузок, оно не работает.

Я попытался сделать тот же класс ConfigurationProperties используя обычный класс java, который устанавливает эти свойства, но когда дело доходит до AmazonDynamoDBAsyncClientProvider , свойства пустые. Что мне здесь не хватает?

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

вот котлинский боб, который я пытаюсь автоушилить с конфигурацией

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

наконец, имеет регулярный java-компонент, который заполняется с помощью ConfigurationProperties но когда он получает Autowired я вижу, что эти свойства пусты / null

 @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; } } 

Вы пытались избавиться от аннотации @Component в своем классе ConfigurationProperties?

Вот что я сделал с Котлином и Весной, надеюсь, что это поможет.

Я пытаюсь использовать плагин kotlin-spring и 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") } 

Они делают весеннее развитие с котлином намного проще.

 @ConfigurationProperties("dynamo") @NoArg data class DynamoDBConfiguration(var endpoint: String, var prefix: String)