Kotlin 已悄然成为 Spring 继支持 Groovy 后的第二个 JVM 语言。持续关注 Java 的同时,也顺手在 Spring 上体验了一把。

本例简单记录 Kotlin 的初始化以及配置文件的输出,建立在熟悉 Spring、Spring Boot 及 Kotlin 的基础上,如对 Spring 框架或 Kotlin 语言比较陌生,建议先行了解。

1、创建项目

springboot-1

使用熟悉且强大的 idea,通过 Spring Initializr 创建项目,点击下一步;

2、选择语言

springboot-2

这里 Language 一栏可以看出来,有 Java、Groovy 以及最新增加的 Kotlin,我们选 Kotlin,构建工具采用 gradle,点击下一步;

3、选择 Spring Boot 版本及功能

springboot-3

根据需求选择希望使用的 Spring Boot 版本及功能模块(比如希望使用 Reactive Web 则需要使用 Spring Boot 2 以上版本),这里我们使用 Spring Boot 1.5.10,点击下一步;

4、安装依赖

springboot-4

等待依赖下载完毕,即可体验基于 Spring、Kotlin 进行编码。

当然,如果习惯自己动手,完全可以根据需求配置依赖并安装或,省去 Spring Initializr 初始化这步,以上所初始化配置如下,贴出来供参考:

buildscript {
	ext {
		kotlinVersion = '1.2.20'
		springBootVersion = '1.5.10.RELEASE'
	}
	repositories {
		mavenCentral()
	}
	dependencies {
		classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
		classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
		classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
	}
}

apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

group = 'com.poorren'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
compileKotlin {
	kotlinOptions {
		freeCompilerArgs = ["-Xjsr305=strict"]
		jvmTarget = "1.8"
	}
}
compileTestKotlin {
	kotlinOptions {
		freeCompilerArgs = ["-Xjsr305=strict"]
		jvmTarget = "1.8"
	}
}

repositories {
	mavenCentral()
}


dependencies {
	compile('org.springframework.boot:spring-boot-starter-web')
	compile('com.fasterxml.jackson.module:jackson-module-kotlin')
	compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}")
	compile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
	testCompile('org.springframework.boot:spring-boot-starter-test')
}

至于启动,和 Java 编写 Spring Boot 应用启动方式一致,这里直接启动 DemoApplication 的 main 函数。

具体语法上的使用,参考

https://spring.io/
https://kotlinlang.org/