Spring Boot Engineering Standard¶
Version: 1.0.0
Status: official
Author: Enterprise AI Standards
Description¶
Official engineering standard for developing enterprise applications using Spring Boot.
Objective¶
Define mandatory standards for designing, implementing and maintaining Spring Boot applications that are scalable, secure, maintainable and cloud-ready.
Philosophy¶
Spring Boot should simplify development, not hide architectural decisions. Every application must be modular, testable, observable and production-ready from day one.
Principles¶
- Convention over configuration.
- Feature-based package organization.
- Constructor Injection only.
- Stateless services.
- Hexagonal Architecture preferred.
- SOLID principles mandatory.
- Fail Fast.
- Configuration externalized.
- Infrastructure separated from business logic.
Project Structure¶
- rules
Language Features¶
Virtual Threads¶
Structured Concurrency¶
Records¶
Sealed Classes¶
Pattern Matching¶
Collections¶
Streams¶
Optional¶
Exceptions¶
- @RestControllerAdvice mandatory.
- RFC7807 Problem Details preferred.
- Never expose stack traces.
Logging¶
- SLF4J.
- Structured Logging.
- Correlation IDs.
- Never System.out.println().
Performance¶
- Virtual Threads.
- HikariCP.
- Lazy initialization only when justified.
- Measure before optimization.
Security¶
- Spring Security mandatory.
- JWT preferred.
- BCrypt passwords.
- HTTPS only.
- CORS configured.
- CSRF disabled only for stateless APIs.
Testing¶
- JUnit 5.
- Mockito.
- Testcontainers.
- Spring Boot Test.
- Integration Tests mandatory.
Observability¶
- Spring Boot Actuator.
- Micrometer.
- OpenTelemetry.
- Prometheus.
- Grafana.
Documentation¶
- SpringDoc OpenAPI.
- README mandatory.
- Architecture diagram required.
Best Practices¶
- Constructor Injection.
- Records for DTOs.
- Immutable objects.
- Small services.
- One endpoint per use case.
- Explicit configuration.
Anti Patterns¶
- Field Injection.
- Fat Controllers.
- Fat Services.
- Entity exposure.
- Circular dependencies.
- Business logic inside Controllers.
- Static state.
- Repository business logic.
Review Checklist¶
- [ ] Java 25
- [ ] Spring Boot Latest
- [ ] Virtual Threads
- [ ] REST API
- [ ] Validation
- [ ] Global Exception Handler
- [ ] JWT
- [ ] Flyway
- [ ] PostgreSQL
- [ ] Testcontainers
- [ ] OpenAPI
- [ ] Docker
- [ ] Health Checks
- [ ] Observability
- [ ] README Updated
Examples¶
References¶
- https://spring.io/projects/spring-boot
- https://docs.spring.io/spring-boot/
- https://spring.io/projects/spring-security
- https://spring.io/projects/spring-data-jpa
- https://springdoc.org/