1、Ktor学习-Application;

发布于 2022年 01月 13日 17:31

腾讯服务器

88 / 年

  • 上海/北京/广州...
  • 2核 2G 4M
  • Linux/Windows
新年大优惠

腾讯服务器

425 / 年

  • 上海/北京/广州...
  • 4核 8G 10M
  • Linux/Windows
年度最便宜

腾讯服务器

1249 / 年

  • 上海/北京/广州...
  • 8核 16G 14M
  • Linux/Windows
点击查看

简介

  Ktor是一个轻松构建后台应用程序的框架:Web应用、Http服务、移动和浏览器应用程序。Ktor服务器应用(application)是使用已配置的服务器引擎监听一个或者多个端口的自定义程序,由带有应用逻辑的模块组成,其中安装了一系列的特性,如路由、会话、以及HTTP/S 1.x/2.x和Websocket请求。

项目结构

 在IntelliJ IDEA安装的插件Ktor生成的模版项目主要包含:

 -resources
         -application.conf
         ...
 -src
         -Application.kt
         
 ...

 在application.conf中可以配置模块、端口等:

 ktor {
 deployment {
     port = 8080
     port = ${?PORT}
 }
 application {
     modules = [ com.example.ApplicationKt.module,
                 com.example.ApplicationKt.module2
     ]
 }
}

在modules项可以配置模块数组(Application.kt编译生成的class文件会在文件名后加上Kt)。

Application

   Application实例是Ktor应用的主要单元,当请求(HTTP、HTTP/2或者Websocket)进来时将其转换为ApplicationCall并经过一个隶属于Application的流水线。该流水线由一个或者多个先前安装的拦截器组成,提供像路由、压缩这样的结束请求处理的功能。

模块

  Ktor模块只是一个接受者为Application类的用户自定义的扩展函数,负责配置服务器流水线、安装特性、注册路由、处理请求。

  注:必须在application.conf文件中指定服务器启动要加载的模块。

  fun Application.mymodule(){
      routing{
          get("/demo"){
              call.respondText("Hello World!")
          }
      }
  }

  也可以将模块函数拆分为几个较小的函数或者类。

  使用完整限定名来引用模块(类的完整限定名和方法名,以.分隔):

 com.example.myapp.ApplicationKt.mymodule

推荐文章