【发布时间】:2018-06-27 18:30:39
【问题描述】:
我想使用 Kotlin 读取 yaml 配置文件,下面是我的代码:
application.yml
message:
messages:
- name: abc
type: aaa
size: 10
- name: xyz
type: bbb
size: 20
MessageConfig.kt
package com.example.demokotlin
import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.context.annotation.Configuration
import java.math.BigDecimal
@ConfigurationProperties(prefix = "message")
@Configuration
class MessageConfig {
lateinit var messages: List<Message>
}
class Message {
lateinit var name: String
lateinit var type: String
lateinit var size: BigDecimal
}
使用配置的类:
package com.example.demokotlin
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@Component
class MessageService @Autowired constructor(private var messageConfig: MessageConfig) {
fun createMessage(): String {
println("in service........")
println(messageConfig.messages[0].name)
println(messageConfig.messages[0].type)
println(messageConfig.messages[0].size)
return "create a message......."
}
}
看起来如果 yaml 文件有数组/列表,Kotlin 无法正确读取它,但它可以在没有数组的情况下工作。
我有完全相同的代码并且适用于 Java。我的 Kotlin 代码有问题吗?
【问题讨论】:
标签: spring spring-boot kotlin