CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Kotlin 语言入门/课时/JVM 与 Spring
RawBlame
课时目录12 节

Kotlin 语言入门

  1. 01Kotlin 是什么
  2. 02基础语法与类型
  3. 03控制流
  4. 04函数与 Lambda
  5. 05集合 API
  6. 06类与 OOP
  7. 07空安全
  8. 08协程
  9. 09JVM 与 Spring
  10. 10Android 与 Compose
  11. 11Ktor 服务端
  12. 12综合练习

JVM 与 Spring

Java 互操作、Gradle、Spring Boot。

35 分钟

JVM 与 Spring

Kotlin 编译为 JVM 字节码,与 Java 无缝互操作。Spring Boot 官方支持 Kotlin,Gradle Kotlin DSL 是主流构建方式。

学习目标

  • 理解 Kotlin 与 Java 的互操作规则
  • 会用 Gradle Kotlin DSL 构建 Kotlin 项目
  • 了解 Spring Boot + Kotlin 的基本结构

Java 互操作

// Kotlin 调用 Java
import java.util.ArrayList

fun main() {
    val list = ArrayList<String>()
    list.add("kotlin")
    list.add("java")
    println(list.size)
}

// Java 调用 Kotlin 需注意:
// - object / companion → 静态方法
// - 属性 → getter/setter
// - 默认参数 → @JvmOverloads
// - 可空 → @Nullable / @Nonnull

Kotlin 文件编译为 XXXKt 类;顶层函数成为静态方法。Java 侧用 @JvmStatic、@JvmField 控制生成代码。

Gradle Kotlin DSL

// build.gradle.kts
plugins {
    kotlin("jvm") version "2.0.0"
    id("org.springframework.boot") version "3.2.0"
    kotlin("plugin.spring") version "2.0.0"
}

group = "com.example"
version = "1.0"

java {
    toolchain { languageVersion.set(JavaLanguageVersion.of(17)) }
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

jackson-module-kotlin 支持 data class 序列化;kotlin("plugin.spring") 让类默认 open 以满足 Spring 代理需求。

Spring Boot 示例

// Application.kt
@SpringBootApplication
class Application

fun main(args: Array<String>) {
    runApplication<Application>(*args)
}

// TrackController.kt
@RestController
@RequestMapping("/api/tracks")
class TrackController(private val service: TrackService) {

    @GetMapping("/{slug}")
    fun getTrack(@PathVariable slug: String): TrackDto? =
        service.findBySlug(slug)
}

data class TrackDto(val slug: String, val title: String, val lessonCount: Int)

class TrackService {
    fun findBySlug(slug: String): TrackDto? =
        if (slug == "kotlin-essentials") TrackDto(slug, "Kotlin 语言入门", 12)
        else null
}

runApplication 是 Spring 提供的 Kotlin 扩展;构造函数注入替代 @Autowired 字段注入。

与 Java 对照

Kotlin + SpringJava + Spring
runApplication<App>()
SpringApplication.run(App.class, args)
class C(private val s: S)@Autowired S s
data class Dto(...)POJO + Lombok
build.gradle.ktsbuild.gradle
suspend Controller(3.2+)CompletableFuture / Virtual Thread

练习

  • 用 Spring Initializr 创建 Kotlin + Spring Boot 项目
  • 写 REST 接口返回 List<TrackDto>
  • 对比 Java 与 Kotlin 的 Controller 写法

小结

Kotlin 与 Java 同 JVM;Spring Boot 官方支持 Kotlin。 下一课 Android 与 Compose。见 kotlin-essentials。

加载本节练习…
← 上一课协程下一课 →Android 与 Compose