Ktor快速上手1 - 第一个服务端项目

Ktor 快速上手

第一个APP

工程创建

首先你需要创建一个Ktor工程,这里有两种办法创建:

  1. 网页创建后下载包到本地,作为工程打开:Ktor: Project Generator
  2. 直接在IDEA里面创建Ktor工程

为了方便操作,这里直接在IDEA里面生成Ktor工程;

IDEA版本为2024.1

选择创建新项目,按照下图所示操作,但要注意以下几个关键点:

  1. Ktor版本不宜过高,有些库还不支持这么高的版本,建议选择2.3.12就好了
  2. 配置文件使用经典的YAML,方便管理
  3. 构建系统推荐使用Gradle(当然你用Maven也不是不可以哈)

进入“下一步”,选择Ktor所需要用到的插件,这个插件就相当于Springboot的库;

我们目前对于基础项目,只需要以下三个库即可:

  1. call logging :日志库
  2. default header :网络请求头库
  3. routing :RESTful风格请求库,类似于Springboot Web库

工程运行

首先修改一下配置文件中服务器的运行端口,默认的8080大概率会被占用;

我这里改成了10002

ktor:application:modules:- com.example.ApplicationKt.moduledeployment:port: 10002

配置完毕后就可以正常运行了;

  1. 直接去程序入口点Application.kt运行main函数
  2. 点击IDEA上方工具栏的运行按钮运行

打开网页:127.0.0.1:10002

你就会发现显示了“Hello World!”字样,这就算配置完成了!!!

Gradle 打包

Docker - 快速入门 - Ktor (kotlincn.net)

对于ktor而言,推荐使用的包管理工具为Gradle,最好不要使用Maven;

若您的工程使用了Gradle,则可以在idea的右侧栏找到Gradle按钮,按照下图所示找到shadowJar后双击运行它即可;

此操作会在项目根目录的 build/libs 下生成打包好的后端Jar包;

该文件夹下会生成两个包,一个是需要依赖的,一个是不需要依赖的,我们移植到Docker上的一般会选择不需要依赖的Jar包(也就是后缀为-all的那个)

您可以在windows下使用命令行运行此Jar包: java -jar xxx.jar

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/435717.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebSocket 2024/9/30

WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。 与HTTP协议的区别 实现

【自动驾驶】控制算法(十一)深度解析车辆纵向控制 | 纵向双 PID 控制算法

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

记录|Modbus-TCP产品使用记录【德克威尔】

目录 前言一、德克威尔1.1 实验图1.2 DECOWELL IO Tester 软件1.3 读写设置1.4 C#进行Modbus-TCP读写 更新时间 前言 参考文章: 使用的第二款Modbus-TCP产品。 一、德克威尔 1.1 实验图 1.2 DECOWELL IO Tester 软件 这也是自带模块配置软件的。下图就是德克威尔的…

AltiumDesigner脚本开发-DIP封装制作

1.点击工具栏的运行工具(蓝色向右三角图标)可以执行脚本程序; 2.点击菜单栏Run->Run可以执行脚本程序; 3.在脚本编辑器中,按键盘的F9键可以执行脚本程序; 4.通过菜单栏执行脚本程序(需要将程序添加到菜单栏中&am…

profinet转ethercat连接伺服在工业现场的配置案例

在工业通信领域,Profinet 转 EtherCAT 网关的应用为实现不同工业网络之间的通信提供了有效的解决方案。以下是一个关于 Profinet 转 EtherCAT 网关链接伺服配置的案例。 首先,我们需要准备好相关的硬件设备,包括 Profinet 转 EtherCAT 网关、…

VoLTE呼叫流程(VoLTE打VoLTE)

目录 01. VoLTE 呼叫流程中的主要子流程 02. 高层来看一个 VoLTE 的基本呼叫过程 03. 场景 04. 高层来看一个 VoLTE 基本呼叫的会话建立 05. 采用 Precondition 的基本呼叫建立流程 06. T-ADS 流程图 07. SIP 头部的 Route 和 Record-Route 头域 08. 第一个 AAR 和第二…

负载箱:充电桩测试利器

RCD负载箱是用于测试和验证电气设备在故障状态下的性能的设备。它可以模拟真实的负载情况,从而帮助工程师和技术人员对设备进行准确的检测和维护。此外,RCD负载箱也是一种重要的安全保护设备,主要用于防止电路中的漏电现象引发的事故。它通常…

Java项目实战II基于Java+Spring Boot+MySQL的美发门店管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者 一、前言 在当今快节奏的社会中,美发门店的管理效率和服务质量直接关系到客户的满意度和门店的竞争…

R语言非参数回归预测摩托车事故、收入数据:局部回归、核回归、LOESS可视化...

全文链接:https://tecdat.cn/?p37784 非参数回归为经典(参数)回归方法提供了一种灵活的替代方法。与假定回归关系具有依赖于有限数量的未知参数的已知形式的传统(参数)方法不同,非参数回归模型尝试从数据样…

Redis篇(应用案例 - UV统计)(持续更新迭代)

目录 一、HyperLogLog 二、测试百万数据的统计 一、HyperLogLog 首先我们搞懂两个概念: UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。 1天内同一个用户多次访问该网站,只记录…

【EI会议征稿通知】第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024)

第八届电气、机械与计算机工程国际学术会议(ICEMCE 2024) 2024 8th International Conference on Electrical, Mechanical and Computer Engineering 本次会议主要围绕“电气”、"机械”和“计算机”三大工程领域展开研讨,为来自国内外…

谷歌SEO:有心栽花花不开,无心插柳柳成荫!

之前一开始是想搞个谷歌SEO免费的技术教程博客(https://www.c-sz.com/)主要是很多时候遇到在谷歌独立站推广群里的朋友需要咨询和学习一些谷歌技术基础知识,当然我自己也有点小心思,就是希望在谷歌能吸引部分的谷歌SEO爱好者尤其包…

Hbase要点简记

Hbase要点简记 Hbase1、底层架构2、表逻辑结构 Hbase HBase是一个分布式的、列式的、实时查询的、非关系型数据库,可以处理PB级别的数据,吞吐量可以到的百万查询/每秒。主要应用于接口等实时数据应用需求,针对具体需求,设计高效率…

JavaScript中的函数定义

第8章 函数 在JS中函数即对象,程序可以随意操控他们。可以把函数赋值给变量,或者作为参数传递给其他函数。因为函数就是对象,所以可以给他们设置属性,甚至调用他们的方法。 JavaScript的函数可以嵌套在其他函数中定义&#xff0…

Flux最新ControlNet 高清修复模型测评,效果好速度快!

上一篇介绍了Jasper AI 发布了三个模型中的法线贴图,没看过的可以看一下哈: Flux目前最快ControlNet模型现身!法线贴图详细测评 (chinaz.com) 这次再介绍一下另一个模型:升频器,可以有比较好的模糊修复效果&#xff…

【数据结构】散列(哈希)表简单介绍

散列表也叫做哈希表(Hash table),散列表通过关键码和存储地址建立唯一确定的映射关系,能够快速查找到对应的元素,排序算法中的计数排序就是一种利用哈希进行排序的算法。 一、散列表的概念 散列表(Hash ta…

解决DHCP服务异常导致设备无法获取IP地址的方法

DHCP在网络环境中会自动为网络中的设备分配IP地址和其他关键网络参数,可以简化网络配置过程。但是,如果DHCP服务出现异常时,设备可能无法正常获取IP地址,会影响到网络通信。 本文讲述一些办法可以有效解决DHCP服务异常导致设备无法…

怎样在 Python 中创建一个自定义函数?

Python函数一般用来实现某个功能模块,可以反复使用,能极大的提升编程效率,多用函数也是写代码的好习惯。 Python中创建函数有两种方式,第一种使用def关键字创建自定义函数(最常见的),第二种使用…

【前端】35道JavaScript进阶问题(1)

来源: javascript-questions/zh-CN/README-zh_CN.md at master lydiahallie/javascript-questions GitHub 记录一些有趣的题。 1 输出是? const shape {radius: 10,diameter() {return this.radius * 2},perimeter: () > 2 * Math.PI * this.rad…

Windows11系统下Docker环境搭建教程

目录 前言Docker简介安装docker总结 前言 本文为博主在项目环境搭建时记录的Docker安装流程,希望对大家能够有所帮助,不足之处欢迎批评指正🤝🤝🤝 Docker简介 Docker 就像一个“容器”平台,可以帮你把应用…