我正在尝试创建以下bean AmazonDynamoDBAsyncClientProvider
。我有application.properties,它定义了endpoint
和tablePrefix
,我试图使用它来注入@ConfigurationProperties
Kotlin spring-boot @ConfigurationProperties
以下是相同的代码片段。当我运行我的spring-boot应用程序时,它不起作用。
我试过做同样的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 bean,它逐渐加入ConfigurationProperties
,但是当它得到Autowired
我看到那些性质是空/空
@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;
}
}
什么意思是“当我运行我的弹簧启动应用程序它不起作用。”?如果有的话,记录的错误信息是什么? – miensol
“当我运行我的spring-boot应用程序时,它不起作用。”,我的意思是当我使用SpringBoot应用程序运行我的Kotlin应用程序,并且如果我在那里记录'getAmazonDBAsync',我看到这两个属性是空/当我使用常规Java类的属性。 – learnedSch0lar