【发布时间】:2018-07-15 20:39:22
【问题描述】:
我在我的Spring 应用程序中配置了kotlin-noarg 插件:
buildscript {
ext {
kotlinVersion = '1.2.51'
}
dependencies {
// ...
classpath "org.jetbrains.kotlin:kotlin-noarg:${kotlinVersion}"
}
}
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
apply plugin: "kotlin-noarg"
noArg {
annotation("com.example.demo.DefaultConstructor")
invokeInitializers = true
}
然后我声明了我的注释:
package com.example.demo
@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.CLASS)
annotation class DefaultConstructor
然后我有我的课:
@DefaultConstructor
data class UserForm(@field:NotNull
@field:DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") val dateTime: LocalDateTime)
这是我尝试使用UserForm 类的方式:
@GetMapping("")
public String userForm(UserForm userForm) {
userForm.copy(LocalDateTime.now());
return "/users/form";
}
所以Spring 在这里尝试使用反射初始化我的UserForm 类,但没有生成默认构造函数,尽管配置了kotlin-noarg 插件(我相信是正确的)。
问题出在哪里?是因为kotlin-noarg 插件配置错误吗?以及如何解决?
我创建了demo project
【问题讨论】:
标签: spring spring-boot kotlin