使用kotlin开发spring boot

开发起来还是特别难的,因为我对kotlin不是很了解。
从网上copy的代码如下:

@SpringBootApplication
open class Main{

    companion object {

        @JvmStatic
        fun main(args:Array) {
            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(*s)
}

这种方式代码更加简洁,而且可以更容易地配置spring boot,比如把banner关闭

fun main(vararg s:String) {
    runApplication(*s) {
        setBannerMode(Banner.Mode.OFF)
    }
}

你可能感兴趣的:(Spring)