Skip to content

A production-ready Spring Boot 3.5.3 + Kotlin 2.0 starter project, offering a unified package with essential backend features pre-integrated and real-world examples.

Notifications You must be signed in to change notification settings

awakelife93/spring-boot-kotlin-boilerplate

Repository files navigation

Spring Boot Boilerplate (Kotlin)

A production-ready Spring Boot 3.5.3 + Kotlin 2.0 starter project, offering a unified package with essential backend features pre-integrated and real-world examples.

Environment & Skills

  • Application

    • Kotlin 2.0
    • Jdk 21
    • Spring boot 3.5.3
      • mvc
      • webflux
    • Gradle 8.10
    • Spring Security
    • Spring Batch
    • Springdoc OpenAPI
    • Postgresql
    • h2 database (PostgreSQL mode) - localhost environment
    • Jpa
    • QueryDSL
    • Redis
    • Jwt
    • Validation
    • Kotlin Logging
    • Logback
    • Flyway
    • Webhook
      • Slack
      • Discord
    • Kafka
    • WebClient
    • Spring Actuator
  • Test

    • Spring Boot Starter Test
    • Spring Security
    • Spring Batch
    • Junit 5
    • Mockito Kotlin
    • Mockito Inline
    • Kotest
    • Mockk
    • Instancio
    • h2 database (PostgreSQL mode)
    • Flyway
  • Etc

    • Docker
    • Pgadmin
    • Ktlint
    • Detekt
    • Mailhog
    • Netty resolver dns native macos
    • Kafka UI
  • Monitoring

    • Prometheus
    • Grafana
    • Sentry

Project Guide

  • monitoring
  • docker
  • src
    • common
    • domain (post, user, auth)
    • example
      • WelcomeSignUpConsumer: Kafka Consumer(SignUp Event) Example
    • infrastructure (kafka, redis, webhook, mail)
    • security
      • spring security + jwt logic
    • utils
    • resources
      • db
        • migration: flyway sql
        • sql: spring batch postgresql metadata sql
      • logback-spring.xml
        • Logback configuration with environment-specific settings
        • Profiles: prod, dev, local
      • application.yml
        • prod, dev, local, common, test, secret-{environment}
        • common: Write common variables for the project.
        • test: Create the variables needed for your test environment.
        • secret-{environment}: your secret variables for each environment.

Local Installation

To use the application, the following two services must be installed and running:

  • kafka
  • redis
  • mailhog
  • grafana
  • prometheus

Description

  1. Database DDL Management

    • This project uses Flyway for DDL management instead of JPA auto-generation.
    • Migration scripts are located in src/main/resources/db/migration
    • If you prefer not to use Flyway, entity synchronization is configured - you can use JPA DDL auto-generation instead.
  2. Webhook

// example

// 1. all
webHookProvider.sendAll(
	"Subscription request received from method ${parameter.method?.name}.",
	mutableListOf("Request Body: $body")
)

// 2. target slack
webHookProvider.sendSlack(
	"Failed to send message to Kafka (foo)",
	mutableListOf("Failed to send message to Kafka: ${exception.message} / $foo")
)

// 3. target discord
webHookProvider.sendDiscord(
	"Failed to send message to Kafka (bar)",
	mutableListOf("Failed to send message to Kafka: ${exception.message} / $bar")
)
  1. Mailhog

  2. Lint

  3. Docker & Infrastructure Services

    • The project includes Docker Compose configurations for all required services
    • For detailed setup, port information, and service management, see Docker Setup Guide
  4. Create Spring Batch metadata table (localhost, development and production environments.)

  5. Two types of tests

  6. Kafka

  7. Example

  8. Grafana & Prometheus

    • To use the data collected by Spring Actuator, please enter the correct URL.
      • Replace '{ip address}:8085' with your actual IP address.
    • Actuator properties
  9. Service Access URLs (When services are running)

    			### Application
    

Author

Hyunwoo Park

About

A production-ready Spring Boot 3.5.3 + Kotlin 2.0 starter project, offering a unified package with essential backend features pre-integrated and real-world examples.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published