从Kotlin 编写的@ConfigurationProperties
项目生成配置元数据不适用于 defaultValue 字段。它适用于所有其他领域。在java中,它适用于所有事情。这是一个例子。请注意,我使用的是 Spring Boot 2.0 和 Gradle。
kapt 'org.springframework.boot:spring-boot-configuration-processor'
kapt {
arguments {
arg("org.springframework.boot.configurationprocessor.additionalMetadataLocations", "$projectDir/src/main/resources")
}
}
compileJava.dependsOn(processResources)
我的 @ConfigurationProperties 文件如下所示:
@Component
@ConfigurationProperties("flowr.epg")
class EpgProperties {
/** Whether or not schedules should be computed/refreshed on (re)start */
var refreshOnRestart = true
/** Number of threads used to store new images */
var nImagesUploadThreads = 10
}
结果如下:
{
"hints": [],
"groups": [
{
"sourceType": "com.taktik.flowr.epg.properties.EpgProperties",
"name": "flowr.epg",
"type": "com.taktik.flowr.epg.properties.EpgProperties"
}
],
"properties": [
{
"sourceType": "com.taktik.flowr.epg.properties.EpgProperties",
"defaultValue": false,
"name": "flowr.epg.refresh-on-restart",
"description": "Whether or not schedules should be computed\/refreshed on (re)start",
"type": "java.lang.Boolean"
},
{
"sourceType": "com.taktik.flowr.epg.properties.EpgProperties",
"defaultValue": 0,
"name": "flowr.epg.n-images-upload-threads",
"description": "Number of threads used to store new images",
"type": "java.lang.Integer"
}
}
对于我的公司来说,支持 Kotlin 中的默认值将是一个非常好的功能。