kotlin-springboot

Installation
Summary

Spring Boot development patterns and idioms tailored for Kotlin applications.

  • Use primary constructors for dependency injection, data class for DTOs, and the kotlin-jpa plugin 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 @ConfigurationProperties with data class for type-safe, immutable configuration; use application.yml and Spring Profiles for environment management.
  • Prefer Kotest and MockK for idiomatic testing; use suspend functions 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-plugin or org.jetbrains.kotlin.jvm).
  • Kotlin Plugins: For JPA, enable the kotlin-jpa plugin to automatically make entity classes open without 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 val in the primary constructor. Prefer val over var everywhere to promote immutability.
  • Component Stereotypes: Use @Service, @Repository, and @RestController annotations just as you would in Java.

Configuration

Related skills

More from github/awesome-copilot

Installs
8.9K
GitHub Stars
32.8K
First Seen
Feb 25, 2026