关于 Kotlin
入门的东西,官网教的还是比较好、比较全的:
基础
同大多数编程语言一样,Kotlin 的程序入口也是 main()
函数。在 Kotlin 中,使用 val
声明不能修改的变量,var
声明可以修改的变量。
Kotlin 的类继承使用 :
声明,并且类默认是 final 的;想要该类被继承,使用 open
声明类:
1 | open class Shape |
vararg
类型的参数就像 Java String...
方式的参数类型,规则也是一样的:只能是参数列表的最后一个参数且参数列表只能有一个此种类型的参数。
如果是 Array
类型,那么调用时需要如下形式使用,使用 *
:
1 | fun callPr() { |
注入方式
使用哪种注入方式需要看使用的框架,以 Spring 为例,官网文档推荐使用构造注入(以下三种方式均可)。之所以有三种写法是因为,在 Kotlin 中,如果构造函数具有注释或可见性修饰符,constructor
关键字是必需的,并且修饰符位于关键字前面。
1 | // 第一种,推荐 |
参考
Ktor
Ktor 本质上是异步和非阻塞的。它允许应用程序同时处理多个请求,使其成为高流量应用程序的完美选择。这是通过利用 Kotlin 的协程来实现的,它简化了异步代码的编写,使其更具可读性和可维护性。此外,标准阻塞应用程序还允许同时处理多个请求,但是,它们不如非阻塞应用程序高效。它仅提供 Web 开发的基本要素,允许开发人员根据需要添加组件。这种极简主义方法可以缩短启动时间、降低资源消耗,并更好地控制应用程序的体系结构。
Ktor 遵循 Application 、 Routing 和 Call 的概念,使其成为构建 RESTful Web 服务的自然选择。
- Application:应用程序是 Ktor 应用程序中的顶级组件。它负责管理应用程序的整个生命周期,包括启动和停止服务器。一个应用程序可以有多个模块和插件,用于定义应用程序行为的不同部分。
- Routing:路由是任何 Web 框架的关键方面,而 Ktor 可以优雅地处理它。路由定义如何处理 HTTP 请求以及应为特定终结点执行哪些代码。开发人员可以创建与 HTTP 方法和 URL 模式匹配的复杂路由结构,从而轻松定义应用程序的行为。
- Call:表示单个 HTTP 请求和响应。它包含有关请求的所有必要信息,例如标头、参数和请求正文。
CIO 是 Coroutine-based I/O 的缩写。通常,我们将其称为使用 Kotlin 和 Coroutines 实现 IETF RFC 或其他协议逻辑的引擎,而无需依赖基于 JVM 的外部库。CIO 是 Ktor 的 Engine 之一,跨平台,推荐使用。
不同的 Engine 支持不同的平台,可以参阅 官方文档
K2
https://blog.jetbrains.com/zh-hans/kotlin/2023/02/k2-kotlin-2-0/
data class 和 @BeanParam 一起使用
1 | data class PageRecord( |