【发布时间】:2018-03-09 08:23:57
【问题描述】:
我使用 SpringBoot2.0.0.RELEASE、Kotlin 1.2.30、Java9。
我在配置文件中有如下配置:
test:
user:
id: 111
username: 111
password: 111
addtime: 2018-11-11 11:11:11
User.kt代码如下:
data class User(
val id: String,
val username: String,
val password: String,
val addtime: LocalDateTime
) : Serializable
我尝试使用以下代码读取配置:
Binder.get(this.context.environment)
.bind("test.user", User::class)
.orElse(null)
但是没有成功,返回如下错误:
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [demo.User]: Illegal arguments for constructor; nested exception is java.lang.IllegalArgumentException: No argument provided for a required parameter: parameter #0 id of fun <init>(kotlin.String, kotlin.String, kotlin.String, java.time.LocalDateTime): demo.User
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:179)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:124)
at org.springframework.boot.context.properties.bind.JavaBeanBinder$Bean.lambda$getSupplier$0(JavaBeanBinder.java:173)
at org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanSupplier.get(JavaBeanBinder.java:227)
at org.springframework.boot.context.properties.bind.JavaBeanBinder$BeanProperty.lambda$getValue$0(JavaBeanBinder.java:303)
... 80 more
完整的错误日志:https://gist.github.com/Cat7373/174b0ddaf103b35062e7b03982f8cb38
我怎样才能成功?感谢您的帮助。
【问题讨论】:
标签: spring-boot kotlin