| Задача / слой | Java / Spring Boot технология | Аналоги и эквиваленты в Kotlin | Комментарий |
|---|---|---|---|
| Язык и среда | Java + JVM | Kotlin (JVM / Native / JS) | Совместим с Java, но короче, null-safe, функционален. |
| Web-фреймворк (REST, MVC) | Spring Boot / Spring MVC | Ktor, Spring Boot (Kotlin DSL), Micronaut, Javalin | Ktor — родной Kotlin-фреймворк от JetBrains; поддерживает корутины и DSL-маршруты. |
| DI / IoC | Spring Context / @Autowired | Koin, Kodein-DI, DI-модуль Ktor | Koin — лёгкий DSL-контейнер, полностью в стиле Kotlin. |
| ORM и базы данных | Hibernate / JPA / Spring Data JPA | Exposed, Ktorm, JOOQ | Exposed от JetBrains — type-safe SQL DSL и ORM. |
| Конфигурации | application.yml |
application.conf (HOCON), Typesafe Config, .env
|
Kotlin поддерживает формат HOCON через библиотеку ConfigFactory.
|
| Безопасность / JWT / RBAC | Spring Security | Ktor Auth, Ktor JWT, Micronaut Security | Встроенная аутентификация, фильтры и JWT middleware. |
| Документирование API | Springdoc-OpenAPI | Ktor-Swagger, OpenAPI Generator, Ktor OpenAPI plugin | Автогенерация Swagger UI из DSL-описания маршрутов. |
| Тестирование | JUnit5, Mockito | Kotest, MockK, Spek, JUnit5 (Kotlin DSL) | Kotest и MockK — Kotlin-ориентированные аналоги JUnit + Mockito. |
| Testcontainers | testcontainers-java | testcontainers-kotlin (обёртка над Java API) | Полностью совместим, просто Kotlin-friendly. |
| Асинхронность / потоки | Executors, CompletableFuture | Kotlin Coroutines, Flow | Асинхронность встроена в язык. |
| Логирование | SLF4J, Logback | kotlin-logging, Logback (тот же) | Kotlin-обёртка над SLF4J — лаконичнее и безопаснее. |
| Документация кода | Javadoc | KDoc, Dokka | Dokka создаёт HTML / Markdown-документацию из KDoc. |
| Мониторинг / Actuator | Spring Actuator | Micrometer + Prometheus, встроенные health-роуты Ktor | Аналогичная система метрик и health-чеков. |
| Сборка и зависимости | Maven / Gradle | Gradle Kotlin DSL (build.gradle.kts) | Kotlin DSL для конфигурации проекта. |
| Задача / слой | Java / Spring Boot технология | Аналоги и эквиваленты в Kotlin | Комментарий |
|---|---|---|---|
| Язык и среда | Java + JVM | Kotlin (JVM / Native / JS) | Совместим с Java, но короче, null-safe, функционален. |
| Web-фреймворк (REST, MVC) | Spring Boot / Spring MVC | Ktor, Spring Boot (Kotlin DSL), Micronaut, Javalin | Ktor — родной Kotlin-фреймворк от JetBrains; поддерживает корутины и DSL-маршруты. |
| DI / IoC | Spring Context / @Autowired | Koin, Kodein-DI, DI-модуль Ktor | Koin — лёгкий DSL-контейнер, полностью в стиле Kotlin. |
| ORM и базы данных | Hibernate / JPA / Spring Data JPA | Exposed, Ktorm, JOOQ | Exposed от JetBrains — type-safe SQL DSL и ORM. |
| Конфигурации | application.yml |
application.conf (HOCON), Typesafe Config, .env
|
Kotlin поддерживает формат HOCON через библиотеку ConfigFactory.
|
| Безопасность / JWT / RBAC | Spring Security | Ktor Auth, Ktor JWT, Micronaut Security | Встроенная аутентификация, фильтры и JWT middleware. |
| Документирование API | Springdoc-OpenAPI | Ktor-Swagger, OpenAPI Generator, Ktor OpenAPI plugin | Автогенерация Swagger UI из DSL-описания маршрутов. |
| Тестирование | JUnit5, Mockito | Kotest, MockK, Spek, JUnit5 (Kotlin DSL) | Kotest и MockK — Kotlin-ориентированные аналоги JUnit + Mockito. |
| Testcontainers | testcontainers-java | testcontainers-kotlin (обёртка над Java API) | Полностью совместим, просто Kotlin-friendly. |
| Асинхронность / потоки | Executors, CompletableFuture | Kotlin Coroutines, Flow | Асинхронность встроена в язык. |
| Логирование | SLF4J, Logback | kotlin-logging, Logback (тот же) | Kotlin-обёртка над SLF4J — лаконичнее и безопаснее. |
| Документация кода | Javadoc | KDoc, Dokka | Dokka создаёт HTML / Markdown-документацию из KDoc. |
| Мониторинг / Actuator | Spring Actuator | Micrometer + Prometheus, встроенные health-роуты Ktor | Аналогичная система метрик и health-чеков. |
| Сборка и зависимости | Maven / Gradle | Gradle Kotlin DSL (build.gradle.kts) | Kotlin DSL для конфигурации проекта. |
// Пример кода
function hello(name) {
console.log(`Hi, ${name}!`);
}
hello("Sergey");