4.1. Project Structure and Dependencies
4.1. Project Structure
4.1.1. Spring Boot Version
- Required: Spring Boot 3.x (use the latest patch version)
- Spring Boot 3.x requires Java 17 or higher; this standard specifies Java 21 as the baseline.
4.1.2. Profile Strategy
Application configuration must be separated by profile.
| Profile | Purpose | Activation Method |
|---|---|---|
local | Local development | Default when running from IDE |
dev | Development server | Specified during CircleCI deployment |
staging | Staging server | Specified during CircleCI deployment |
prod | Production server | Specified during CircleCI deployment |
4.2. Dependency Management
4.2.1. Spring Boot BOM
Use spring-boot-starter-parent as the parent to manage dependency versions centrally.
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.4.3</version>
<relativePath/>
</parent>4.2.2. Dependency Principles
- Dependencies managed by the Spring Boot BOM must not specify explicit versions.
- External library versions must be defined in
<properties>and referenced from there. - SNAPSHOT dependencies must not be used in production builds.