When generating Spring Boot applications or components:
- Dependency Injection: Primarily use constructor injection for dependencies. Avoid field injection.
- Annotations: Adhere to standard stereotype annotations (@Service, @Repository, @RestController, @Component, @Configuration).
- Configuration: Prefer
application.yml
(or application-profile.yml
) for externalized configuration. Use @ConfigurationProperties
for type-safe configuration.
- Exception Handling: Implement global exception handling using
@ControllerAdvice
and @ExceptionHandler
. Return meaningful error responses.
- REST Controllers: Ensure controllers are stateless. Use DTOs (Data Transfer Objects) for request and response bodies.
- Service Layer: Business logic should reside in service classes (@Service).
- Data Access: Use Spring Data JPA repositories for database interactions. Avoid business logic in repositories.
- Logging: Use SLF4J for logging. Configure appropriate logging levels.