Configuration of Spring-boot that fits my preferences. To be used as a template for applications
- Kotlin and Java
- Front-end setup in same repo
- Spring Boot parent
- AssertJ
- AssertJ Assertions generator with templates for kotlin-code and java code
- Access log
- Logging of correlation id
- Onion style architecture https://dev.to/flbenz/kotlin-and-domain-driven-design-value-objects-4m32
- Flyway
- ArchUnit to ensure architecture
- Spring Security for OAuth/OIDC
- Setup for repository tests
- Setup for controller tests
- Setup for unit-tests https://www.baeldung.com/parameterized-tests-junit-5
- Setup for tesing FlyWay-scripts
- Setup for integration tests: https://www.baeldung.com/integration-testing-in-spring https://www.baeldung.com/spring-tests
- Setup for https://www.baeldung.com/spring-boot-testing
- Maven plugin for code formatting
- KeePass for sharing dev secrets?
- OpenAPI spec/swagger on rest endpoints
- Auto generation of clients based on OpenAPI
- Distributed tracing with https://opentracing.io/ RestTemplateBuilder in clients with callid set.
- Setup for FindBugs/FindSecBugs/Code coverage
- Proper setup for release/deploy of artifacts
- Semantic versioning based on commit comments (?)
- Jenkins pipeline
- Actuators : Prometheus, health
- Metrics with Micrometer https://www.baeldung.com/micrometer
- Metrics for all requests/responses
- Default dashboard for Grafana