Ktor-prosjektoppsett: embeddedServer og Application-moduler
Start en Ktor-applikasjon, konfigurer Netty og definer applikasjonsmoduler.
Ktor-prosjektoppsett: embeddedServer og Application-moduler er en gratis leksjon i Kotlin Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kotlin Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.
Hva er Ktor?
Ktor er JetBrains' asynkrone Kotlin-rammeverk for å bygge servere og klienter. Det er coroutine-basert, plugin-basert og uten skjult magi: alle funksjoner som trengs, må installeres eksplisitt. Ktor-applikasjoner er vanlige Kotlin-programmer — ingen DI-container er nødvendig.
Legge til Ktor-avhengigheter
Legg til den sentrale servermotoren (Netty er den vanligste) og det sentrale Ktor-serverbiblioteket i build.gradle.kts:
dependencies {
implementation("io.ktor:ktor-server-core:2.3.12")
implementation("io.ktor:ktor-server-netty:2.3.12")
implementation("ch.qos.logback:logback-classic:1.5.6") // logging
}embeddedServer: Minimalt inngangspunkt
Den enkleste måten å starte en Ktor-server på er embeddedServer. Angi motorfabrikken, porten og en konfigurasjonsblokk:
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.ktor.server.routing.*
import io.ktor.server.response.*
fun main() {
embeddedServer(Netty, port = 8080) {
routing {
get("/") { call.respondText("Hello, Ktor!") }
}
}.start(wait = true)
}Applikasjonsmoduler
I større prosjekter kan konfigurasjonen deles opp i moduler — utvidelsesfunksjoner for Application. En modul installerer pluginer og registrerer ruter. Dette gjør kodebasen enklere å teste og sette sammen:
fun Application.configureRouting() {
routing {
get("/health") { call.respondText("OK") }
}
}
fun Application.configureSerialization() {
install(ContentNegotiation) { json() }
}Kalle moduler fra main
Kall modulfunksjonene i embeddedServer-blokken for å sette dem sammen:
fun main() {
embeddedServer(Netty, port = 8080) {
configureRouting()
configureSerialization()
configureSecurity()
}.start(wait = true)
}application.conf (HOCON-konfigurasjon)
Et alternativ til embeddedServer er å bruke en application.conf-fil (HOCON-format) og kjøre via EngineMain. Konfigurasjonsfilen angir inngangsmodulen og porten:
# application.conf
ktor {
deployment { port = 8080 }
application {
modules = [ com.example.ApplicationKt.module ]
}
}EngineMain kontra embeddedServer
Bruk embeddedServer når full kontroll i koden er ønskelig (svært godt egnet for testing og enkle apper). Bruk EngineMain + application.conf når miljøspesifikk konfigurasjon er ønskelig uten å kompilere på nytt.
ApplicationCall-objektet
Hver forespørselshåndterer mottar en ApplicationCall. Den gir tilgang til forespørselen (call.request), svaret (call.response) og hjelpefunksjoner som call.respondText() og call.respond().
Miljø og logging
Få tilgang til miljøkonfigurasjon i en modul via environment.config. Logging bruker SLF4J. Legg til en logback.xml i src/main/resources/ for å konfigurere loggnivåer og utdataformat.
Hot reload under utvikling
Ktor støtter hot reload under utvikling via flagget development. Aktiver det i application.conf eller programmatisk: embeddedServer(Netty, port = 8080, developmentMode = true) { ... }.
Konvensjon for prosjektstruktur
En typisk Ktor-prosjektstruktur:
Application.kt— inngangspunktetmain()plugins/— én fil per Application-utvidelsesfunksjon (Routing, Serialization, Auth og så videre)routes/— rutedefinisjoner gruppert etter domenemodels/— dataklasser
Kort kontroll
Hva er formålet med en Application-modulfunksjon i Ktor?
Oppsummering: Sette opp et Ktor-prosjekt
Viktigste punkter:
embeddedServer(Engine, port) { ... }.start(wait=true)er det enkleste inngangspunktet- Del konfigurasjonen opp i modulutvidelsesfunksjoner for
Application - Bruk
EngineMain+application.conffor ekstern konfigurasjon - Alle forespørselshåndterere bruker
ApplicationCallfor tilgang til forespørsel og svar - Gruppér ruter i en
routes/-pakke for bedre vedlikehold
Lær deg Kotlin med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 51
- Leksjoner
- 203
Ofte stilte spørsmål
Er leksjonen «Ktor-prosjektoppsett: embeddedServer og Application-moduler» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Kotlin Academy, inkludert «Ktor-prosjektoppsett: embeddedServer og Application-moduler», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Ktor-prosjektoppsett: embeddedServer og Application-moduler»?
Start en Ktor-applikasjon, konfigurer Netty og definer applikasjonsmoduler. Du øver på Kotlin Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Kotlin Academy?
Ingen tidligere erfaring er nødvendig. Kotlin Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Ktor-prosjektoppsett: embeddedServer og Application-moduler»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Kotlin Academy-leksjonen?
Ja. Alle Kotlin Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Ktor-prosjektoppsett: embeddedServer og Application-moduler
- Ruting og typede parametere
- Innholdsforhandling og kotlinx.serialization
- Autentiseringsplugins: JWT og session