当前位置:首页> 正文

1、Ktor学习-Application;

1、Ktor学习-Application;

简介

  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
展开全文阅读

相关内容