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
    • 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
  • 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
      • 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. 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

  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. Development Support Tools

    • swagger: localhost:8085/swagger-ui/index.html
    • mailhog: localhost:8025
    • pgadmin: localhost:8088
    • h2: localhost:8085/h2-console
    • grafana: localhost:3000
    • prometheus: localhost:9090

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