环境搭建
安装gradle
- 下载
Gradle
的安装包(可选择二进制包或者完整包 - 解压压缩包到安装路径, 如:
1
2
3~$ mkdir -p /usr/local/gradle
~$ cd /usr/local/gradle
~$ unzip ~/Downloads/gradle-6.0-bin.zip - 导入环境
- 将
Gradle
的bin
目录添加到PATH
环境变量1
2~$ echo "export PATH=$GRADLE_HOME/bin:$PATH" >> ~/.bashrc # ~/.bash_profile ~/.zshrc
~$ source ~/.bashrc - 或者将
Gradle
的可执行文件软连接到/usr/local/bin
1
~$ ln -s $GRADLE_HOME/bin/gradle /usr/local/bin/gradle
提示: $GRADLE_HOME
指的是gradle
解压后的目录, 比如 /usr/local/gradle/6.0
创建工程
使用gradle
创建初始工程
1 | ➜ Kotlin mkdir project |
使用IntelliJ Idea
打开刚刚创建的项目
配置工程
修改build.gradle.kts
文件
- 简化
kotlin
相关的依赖导入改为1
2
3
4
5
6
7
8
9
10
11
12
13dependencies {
// Align versions of all Kotlin components
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
// Use the Kotlin JDK 8 standard library.
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
// Use the Kotlin test library.
testImplementation("org.jetbrains.kotlin:kotlin-test")
// Use the Kotlin JUnit integration.
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
}1
2
3
4
5
6
7
8dependencies {
implementation(kotlin("stdlib", "1.3.50"))
implementation(kotlin("reflect", "1.3.50")) /// kotlin 反射机制需要的库
/// 暂时不需要改动
testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
} - 导入
springboot
相关插件其中 使用1
2
3
4
5
6plugins {
kotlin("jvm") version "1.3.50"
kotlin("plugin.spring") version "1.3.50"
id("org.springframework.boot") version "2.2.1.RELEASE"
id("io.spring.dependency-management") version "1.0.8.RELEASE"
}kotlin()
方法包裹的, 属于kotlin
模块,使用id()
方法的是第三方模块 - 增加
mavenCentral()
仓库1
2
3
4repositories {
mavenCentral()
jcenter()
} - 导入
"org.springframework.boot:spring-boot-starter-web"
1
2
3
4
5
6dependencies {
/// ...
implementation("org.springframework.boot", "spring-boot-starter-web")
/// implementation("org.springframework.boot:spring-boot-starter-web")
/// ...
}
打开我们的程序入口App.kt
1 | package com.oyoung |
改成如下:
1 | package com.oyoung /// 这里改成自己明明的包 |
此刻我们看到runApplication
这一行有红色波浪线,鼠标移到上面提示:
这表示我们的kotlin build的字节码的jvm版本与我们实际设定的不一致
1 | group = "com.oyoung" |
按提示增加 -jvm-target
参数
- 删除最下面自动生成的
application
任务 - 增加一个
KotlinCompile
任务建议自己敲上面的代码, 在敲代码的过程中会有一个自动导入的import 添加到文件开头1
2
3
4
5tasks.withType<KotlinCompile>() {
kotlinOptions {
jvmTarget = "1.8"
}
}当然了, 如果IDE响应太慢没有自动import,也可以手动导入1
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
首次尝试启动
打开定位为App.kt
文件
在 main
函数的左侧, 显示行号的附近有一个三角形
箭头, 点击, 然后会有弹出来的菜单, 之后的操作, 你懂的…
此时, 如果一切正常的话, 将会以默认的8080端口号启动一个没有任何路由请求的SpringBoot应用程序, 如果需要修改为自定义的端口号, 需要在$PROJECT/src/main/resources
路径下新建一个application.yml
(或者application.properties
)文件:
1 | server: |
- 第二次启动应用时 端口号即可改为自定义的端口号
增加controller
- 新建一个
com.oyoung.controller
包 (或者使用自己的包前缀) - 新建一个
Controller
类, 比如TestController
- 在自定义的Controller上面添加注解
@RestController
, 一般会自动导入 所需要的包, 没有自动导入的话, 可以按照提示按Alt + Enter
组合按键手动导入 - 添加第一个路由,比如 /test, 返回任意一个对象
- 重新启动程序
- 如果在上面的依赖中没有添加 的话, 一般会启动失败, 至于使用什么版本, 看具体情况,我自己选择的是当前最新的稳定版
1
2
3
4
5dependencies {
/// ...
implementation(kotlin("reflect", "1.3.50"))
/// ...
}
至此一个完整的SpringBoot初始项目就创建完成了,