本篇文章主要来看一下Kotlin语言的使用场景之一:Kotlin用在服务器端
使用Kotlin开发服务器端应用程序
Kotlin语言允许写出简洁且表达性强的代码,所以它非常适合开发服务器端的应用程序。与此同时Kotlin语言还可以完全兼容现有的基于java的技术栈以及平滑的学习曲线:
** ——可表达性 (Expressiveness)**:Kotlin的创新的语言特征,例如它对 type-safe builders 和 delegated properties 的支持,帮助我们建立强大的且易于使用的抽象逻辑。
** ——可扩展性(Scalability) **:Kotlin对于 协同程序(coroutines)的支持,帮助我们建立可以扩展到巨大数量的客户端的,且基于普通硬件要求的服务器端应用程序。
**——互操作性(Interoperability) **:Kotlin完全兼容所有基于java的框架,这让我们保持相似的技术栈的同时,获得更加现代化的语言所带来的好处。
——迁移(Migration) :Kotlin支持渐进式地,逐步地从Java大量的代码库迁移到Kotlin。我们可以在用Kotlin写新的代码的同时,保持着系统中旧的java部分。
——开发工具(Tooling):除了基本的强大的IDE支持,Kotlin还在Intellij IDEA旗舰版的插件中提供了特定框架的工具(例如:Spring)。
——学习曲线:对于Java开发者而言,上手Kotlin非常容易。内置的Kotlin插件可以自动地完成从Java到Kotlin的转换工作。另外,. Kotlin Koans 用一系列的可交互的练习,为我们掌握Kotlin语言的关键特征提供了指导。
支持Kotlin后端开发的框架
1.Spring框架 利用Kotlin语言的特性提供了更加简洁的 APIS,从5.0版本开始,在线项目生成器( online project generator )允许快速地生成一个Kotlin版本的项目。
2.Vert.x框架 在JVM创建可交互的网页应用程序框架,对Kotlin提供了专门的支持,包括全部文档。
3.Ktor框架 由JetBrains创建的Kotlin本地Web框架,他利用了Kotlin语言的协同程序所带来的高度扩展性,并且提供了良好的API。
4.kotlinx.html 是一个在Web应用中创建THML的DSL(领域特定语言)。他被当作是类似于JSP和FreeMarker等传统模板系统的替代品。
5.可供使用的持久化选项包括:直接使用JDBC,JPA,以及通过其Java驱动使用NoSQL数据库。对于JPA而言,e kotlin-jpa compiler plugin(kotlin-jpa编译器插件)使Kotlin编译的类适应框架的要求。
部署Kotlin服务端应用
Kotlin应用可以被部署在任何支持Java Web的平台上,包括亚马逊Web服务(AWS),Google云平台等更多平台。
This blog post(博客帖子)为在 Heroku上部署Kotlin应用提供了指导。
AWS实验室 提供了一些项目例子向我们展示了它们用Kotlin语言写的 AWS Lambda功能。
使用Kotlin服务端的用户
Corda是开源的分布式账本平台,被各大银行所支持,它就是完全由Kotlin开发。(Github地址)
JetBrains Accoun(),该系统主要处理JetBrains公司的产品销售许可和批准,完全由Kotlin开发,自2015年至今一直运行且没有出现过重大问题。(JetBrains 我为自己代言)
接下来的步骤
- 使用Http Servlets创建Web应用(Creating Web Applications with Http Servlets) 和 使用Spring Boot创建RESTful Web服务(Creating a RESTful Web Service with Spring Boot) 的教程,会知道我们如何使用Kotlin创建和运行更小的Web 应用程序。
*为了更加深入地了解Kotlin语言,请查看本网站的参考文档 和 Kotlin Koans.