This project provides a foundational structure for a Kotlin Spring Boot multi-module setup.
While it may not represent the most advanced architecture, it is a good starting point for projects where initial productivity is a priority.
As your software evolves and scales, the structure can and should adapt accordingly.
Kotlin Version: 1.6.21
Spring Boot Version: 2.7.1
Database: H2 (example implementation)
Build Tool: Gradle
This is the only executable module in the project.
Handles API-related logic, including Controller classes.
Optimized for maximizing productivity during initial development stages.
Manages domain models and business logic.
Provides the core functionality of the application with a clear separation of concerns.
Submodule: This module is responsible for database-related operations and integrations.
Example of integrating with an H2 database using Spring Data JPA.
Serves as a template for connecting to other database or storage systems.
Submodule: This module contains auxiliary features such as logging and monitoring.
Manages application logging.
Supports integration with various logging frameworks.
Provides monitoring capabilities for services.
Ensures observability and performance tracking.
Here are the references and videos used when designing this project.
-
[Youtube] SpringBoot + Kotlin 멀티 모듈 구성
Special thanks to geminiKim for the original spring-boot-kotlin-template, which inspired the creation of this project.
If you'd like to check the latest versions of Kotlin, Spring Boot, or additional resources, I recommend visiting the spring-boot-kotlin-template repository.