11.3 环境准备

11.3.1 创建工程

首先,我们使用SPRING INITIALIZR来创建一个模板工程。

第一步:访问 http://start.spring.io/, 选择生成一个Gradle项目,使用Kotlin语言,使用的Spring Boot版本是2.0.0 M2。

第二步: 配置项目基本信息。
Group: com.easy.kotlin
Artifact:chapter11_kotlin_springboot
以及项目名称、项目描述、包名称等其他的选项。选择jar包方式打包,使用JDK1.8 。

第三步:选择项目依赖。我们这里分别选择了:Web、DevTools、JPA、MySQL、Actuator、Freemarker。

以上三步如下图所示:

Kotlin极简教程

点击生成项目,下载zip包,解压后导入IDEA中,我们可以看到一个如下目录结构的工程:

  1. .
  2. ├── build
  3. └── kotlin-build
  4. └── caches
  5. ├── build.gradle
  6. ├── gradle
  7. └── wrapper
  8. ├── gradle-wrapper.jar
  9. └── gradle-wrapper.properties
  10. ├── gradlew
  11. ├── gradlew.bat
  12. └── src
  13. ├── main
  14. ├── kotlin
  15. └── com
  16. └── easy
  17. └── kotlin
  18. └── chapter11_kotlin_springboot
  19. └── Chapter11KotlinSpringbootApplication.kt
  20. └── resources
  21. ├── application.properties
  22. ├── static
  23. └── templates
  24. └── test
  25. └── kotlin
  26. └── com
  27. └── easy
  28. └── kotlin
  29. └── chapter11_kotlin_springboot
  30. └── Chapter11KotlinSpringbootApplicationTests.kt
  31. 21 directories, 8 files

其中,Chapter11KotlinSpringbootApplication.kt是SpringBoot应用的入口启动类。

11.3.2 Gradle配置文件说明

整个工程的Gradle构建配置文件build.gradle的内容如下:

  1. buildscript {
  2. ext {
  3. kotlinVersion = '1.1.3-2'
  4. springBootVersion = '2.0.0.M2'
  5. }
  6. repositories {
  7. mavenCentral()
  8. maven { url "https://repo.spring.io/snapshot" }
  9. maven { url "https://repo.spring.io/milestone" }
  10. }
  11. dependencies {
  12. classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
  13. classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
  14. classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
  15. }
  16. }
  17. apply plugin: 'kotlin'
  18. apply plugin: 'kotlin-spring'
  19. apply plugin: 'eclipse'
  20. apply plugin: 'org.springframework.boot'
  21. apply plugin: 'io.spring.dependency-management'
  22. version = '0.0.1-SNAPSHOT'
  23. sourceCompatibility = 1.8
  24. compileKotlin {
  25. kotlinOptions.jvmTarget = "1.8"
  26. }
  27. compileTestKotlin {
  28. kotlinOptions.jvmTarget = "1.8"
  29. }
  30. repositories {
  31. mavenCentral()
  32. maven { url "https://repo.spring.io/snapshot" }
  33. maven { url "https://repo.spring.io/milestone" }
  34. }
  35. dependencies {
  36. compile('org.springframework.boot:spring-boot-starter-actuator')
  37. compile('org.springframework.boot:spring-boot-starter-data-jpa')
  38. compile('org.springframework.boot:spring-boot-starter-freemarker')
  39. compile('org.springframework.boot:spring-boot-starter-web')
  40. compile("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
  41. compile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
  42. runtime('org.springframework.boot:spring-boot-devtools')
  43. runtime('mysql:mysql-connector-java')
  44. testCompile('org.springframework.boot:spring-boot-starter-test')
  45. }

其中主要的配置项如下表说明:

配置项 功能说明
spring-boot-gradle-plugin SpringBoot集成Gradle的插件
kotlin-gradle-plugin Kotlin集成Gradle的插件
kotlin-allopen Kotlin全开放插件。Kotlin 里类默认都是final的,如果声明的类需要被继承则需要使用open 关键字来描述类,这个插件就是把Kotlin中的所有类都open打开,可被继承
spring-boot-starter-actuator SpringBoot的健康检查监控组件启动器
spring-boot-starter-data-jpa JPA启动器
spring-boot-starter-freemarker 模板引擎freemarker启动器
kotlin-stdlib-jre8 Kotlin基于JRE8的标准库
kotlin-reflect Kotlin反射库
spring-boot-devtools SpringBoot开发者工具,例如:热部署等
mysql-connector-java Java的MySQL连接器库
spring-boot-starter-test 测试启动器