SpringBoot之從Java到Gotlin(混用)-1
阿新 • • 發佈:2018-12-20
SpringBoot之從Java到Kotlin(混用)-1
介紹
第一篇部落格
一直不知道記些什麼,恰好最近看了下Kotlin,打算實際使用一番,就拿前一段自己基於SpringCloud搭建了一套後臺程式試手吧,記錄由Java改為Kotlin過程中遇到的坑和Kotlin的優缺點。
環境及版本
- Eclipse Oxygen
- JDK 8
- Kotlin 1.3.0
- Gradle 4.6
- SpringCloud Greenwich.M1
- SpringBoot 2.1.0.RELEASE
開始
工程結構修改
- 安裝Eclipse的Kotlin外掛 在Marketplace裡搜尋Kotlin安裝,當前版本為0.88
- 修改build.gradle,在原有基礎上新增(程式碼只含新增部分)
buildscript {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
}
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
dependencies {
implementation('com.fasterxml.jackson.module:jackson-module-kotlin' )
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
}
sourceSets {
main {
java {
srcDirs = ['src/main/java', 'src/main/kotlin']
}
}
}
//應該可省略
compileKotlin {
kotlinOptions {
freeCompilerArgs = ["-Xjsr305=strict"]
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
freeCompilerArgs = ["-Xjsr305=strict"]
jvmTarget = "1.8"
}
}
-
原有SourceFolder “src\main\java”,新增一個 “src\main\kotlin” 用於單獨存放Kotlin程式碼
-
重新整理一下Gradle
-
Eclipse設定:Windows-preferences-Kotlin-Compiler
-
切換為Kotlin透檢視
程式碼轉換
我是打算從controller層開始,一個檔案一個檔案的轉換,
大概步驟
- 在kotlin資料夾下建立與java相同的包;
- 將需要轉換的java類檔案拷貝到kotlin包下;
- 在java類檔案上右鍵,點選Convert Java to Kotlin(安裝kotlin外掛後);
- 進行查缺補漏,藉此鞏固自己學到的Kotlin語法。
轉換中遇到的問題
- 陣列自動轉換
//java
@RequestMapping(value = "/app", method = RequestMethod.GET)
//kotlin
@RequestMapping(value = arrayOf("/app"), method = arrayOf(RequestMethod.GET))
- 自動注入
//java
@Autowired
private AppService appService;
//kotlin
@Autowired
lateinit var appService: AppService
- lateinit
- 方法函式
//java
@RequestMapping("/slider")
public List<String> slider(){
return appService.getHomeSliders();
}
//kotlin
@RequestMapping("/slider")
fun slider() = appService.getHomeSliders()
- Kotlin中的 ? 和 !! Kotlin中預設物件不能為null,? 表示當前物件可以為null !! 表示當前物件不為null的情況下執行
- 單表示式函式:當函式返回單個表示式時,可以省略花括號並且在 = 符號之後指定程式碼體即可
- 隱式返回型別:當返回值型別可由編譯器推斷時,顯式宣告返回型別可省略
小結
今天初步嘗試使用了Kotlin,總體上還是十分欣喜的,原因如下:
- 配置及使用方便,只需引用幾個gradle外掛和jar包,然後簡單地配置下eclipse即可;
- 與Java無縫整合,上手容易,在熟悉的語法基礎上極大的簡化了其程式碼,真的是Better Java;
- 空指標安全。
剛剛上手,感覺不錯,希望可以吃到更多的語法糖~ See you tomorrow~