ttt*_*ttt 6 spring kotlin spring-boot
我想用Kotlin读取yaml配置文件,下面是我的代码:
application.yml
message:
messages:
- name: abc
type: aaa
size: 10
- name: xyz
type: bbb
size: 20
Run Code Online (Sandbox Code Playgroud)
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
}
Run Code Online (Sandbox Code Playgroud)
要使用配置的类:
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......."
}
}
Run Code Online (Sandbox Code Playgroud)
看起来如果yaml文件有数组/列表,Kotlin无法正确读取它,但它没有数组工作.
我有完全相同的代码,适用于Java.我的Kotlin代码出了什么问题?
sno*_*owe 15
您遇到了这个错误.简单地改变
lateinit var messages: List<Message>
Run Code Online (Sandbox Code Playgroud)
至
var messages: MutableList<Message> = mutableListOf()
Run Code Online (Sandbox Code Playgroud)
使你的代码工作.这是一个完整的工作示例.
| 归档时间: |
|
| 查看次数: |
3103 次 |
| 最近记录: |