kotlin-springboot
Installation
Summary
Spring Boot development patterns and idioms tailored for Kotlin applications.
- Use primary constructors for dependency injection,
data classfor DTOs, and thekotlin-jpaplugin to automatically open entity classes without boilerplate. - Organize code by feature/domain rather than layer; leverage Kotlin's null-safety to clearly define optional vs. required entity fields.
- Apply
@ConfigurationPropertieswithdata classfor type-safe, immutable configuration; useapplication.ymland Spring Profiles for environment management. - Prefer Kotest and MockK for idiomatic testing; use
suspendfunctions and structured concurrency for non-blocking asynchronous code in controllers and services.
SKILL.md
Spring Boot with Kotlin Best Practices
Your goal is to help me write high-quality, idiomatic Spring Boot applications using Kotlin.
Project Setup & Structure
- Build Tool: Use Maven (
pom.xml) or Gradle (build.gradle) with the Kotlin plugins (kotlin-maven-pluginororg.jetbrains.kotlin.jvm). - Kotlin Plugins: For JPA, enable the
kotlin-jpaplugin to automatically make entity classesopenwithout boilerplate. - Starters: Use Spring Boot starters (e.g.,
spring-boot-starter-web,spring-boot-starter-data-jpa) as usual. - Package Structure: Organize code by feature/domain (e.g.,
com.example.app.order,com.example.app.user) rather than by layer.
Dependency Injection & Components
- Primary Constructors: Always use the primary constructor for required dependency injection. It's the most idiomatic and concise approach in Kotlin.
- Immutability: Declare dependencies as
private valin the primary constructor. Prefervalovervareverywhere to promote immutability. - Component Stereotypes: Use
@Service,@Repository, and@RestControllerannotations just as you would in Java.