-
Application
- Kotlin 2.1
- Jdk 21
- Spring boot 3.4.0
- Gradle 8.10
- Spring Security
- Spring Batch
- Springdoc OpenAPI
- Postgresql
- h2 database (PostgreSQL mode) - localhost environment
- Jpa
- QueryDSL
- Redis
- Jwt
- Validation
- Sentry
- Kotlin Logging
- Flyway
-
Test
- Spring Boot Starter Test
- Spring Security
- Spring Batch
- Junit 5
- Mockito Kotlin
- Kotest
- Mockk
- Instancio
- h2 database (PostgreSQL mode)
- Flyway
-
Etc
- Pgadmin
- Ktlint
- common
- domain (post, user, auth)
- security
- spring security + jwt logic
- utils
- resources
- 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}: auth (jwt, api key), database information
- prod, dev, local, common, test, secret-{environment}
- lint
- ktlint
- using the official lint rules by default.
- report output
- build/reports/ktlint
- ktlint
- docker-compose
- If you plan to use it, you need to check the environment variables.
- create spring batch metadata table (localhost, development and production environments.)
- Run your ddl script or Please refer
to github - spring batch
- Since this project uses postgresql, the spring.batch.jdbc.initialize-schema: always option does not work.
- localhost & test environment, generating batch-postgresql-metadata-schema.sql.
- Run your ddl script or Please refer
to github - spring batch
- two types of tests
- mockito
- kotest & mockk
- if you want to bypass Spring Security authentication issues.
- SecurityListenerFactory
- BaseIntegrationController
// example listeners(SecurityListenerFactory()) Then("Call DELETE /api/v1/users/{userId}").config(tags = setOf(SecurityListenerFactory.NonSecurityOption)) { // ... }
- if you want to bypass Spring Security authentication issues.
Hyunwoo Park