Get best practices for developing applications with Spring Boot and Kotlin.
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. 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
don't have the plugin yet? install it then click "run inline in claude" again.