开发起来还是特别难的,因为我对kotlin不是很了解。
从网上copy的代码如下:
@SpringBootApplication
open class Main{
companion object {
@JvmStatic
fun main(args:Array<String>) {
SpringApplication.run(Main::class.java, *args)
}
}
}
我犯了几个错误
1 忘了加@JvmStatis注解
后来才知道,不加@JvmStatis是不会变成静态方法的
2 使用了Main::javaClass
后来知道了Main::javaClass Main::class 都是kotlin的引用对象,只有Main::class.java才是真正的Class类的实例,才是真正的Class对象。
3 args前没有加星号
*号是将数组展开,kotlin传入数组参数和可变参数时,都需要这样处理
比如改成可变参数,也是这样
@JvmStatic
fun main(vararg s:String) {
SpringApplication.run(Main::class.java, *s)
}
从spring boot的官方文档上,我找到了一种更好的方式
@SpringBootApplication
open class MainApplication
fun main(vararg s:String) {
runApplication<MainApplication>(*s)
}
这种方式代码更加简洁,而且可以更容易地配置spring boot,比如把banner关闭
fun main(vararg s:String) {
runApplication<MainApplication>(*s) {
setBannerMode(Banner.Mode.OFF)
}
}