Golden Path: Backend Spring Boot
Plantilla base para servicios Spring Boot (Java 21) con arquitectura hexagonal, pensada para microservicios empresariales de alto rendimiento desplegados en Cloud Run.
GitLab: templates/template-spring-bl
Referencia técnica detallada del template: Template Spring BL.
Stack
| Componente | Valor |
|---|---|
| Lenguaje | Java 21 (JDK 21) |
| Framework | Spring Boot |
| Build | Gradle 8.11.1 (wrapper incluido) |
| Arquitectura | Hexagonal (Domain / Infrastructure / Application) |
| Runtime | Cloud Run |
| Observabilidad | OpenTelemetry (Java Agent, OTLP) |
Funcionalidades modulares (tags)
El template activa capacidades mediante tags al crear el proyecto, de modo que solo incluyes lo que necesitas:
| Tag | Capacidad |
|---|---|
Base | Hello World REST (/api/v1/greetings/hello). Siempre activo |
Pubsub | Mensajería asíncrona con Google Cloud Pub/Sub |
Database | PostgreSQL con Spring Data JPA (HikariCP) |
Liquibase | Migraciones de base de datos (requiere Database) |
Adicionalmente, el template ofrece integración lista para usar con Google Cloud Storage, Redis, Apache Kafka y servicios REST externos (OpenFeign), además de bibliotecas de seguridad e imágenes base autorizadas.
Seguridad
La seguridad se configura en Google Cloud Endpoints (deploy/endpoints/openapi.yaml.erb) con dos esquemas:
- API Key (header
x-api-key) — identificación de la app que llama. - Azure ID Token (OAuth2, header
Authorization: Bearer) — autenticación con Azure AD.
Requisitos para desarrollo local
- JDK 21
- Gradle 8.11.1 (o el wrapper
./gradlew) - Acceso al Artifactory de LATAM (dependencias corporativas, vía
gradle.properties) - Docker (opcional, para PostgreSQL local)
# Crear desde Cursor con el skill de ciclo de vida
/create-app --golden-path=java-spring-boot --product=mi-producto
La aplicación queda disponible en http://localhost:8080/template-spring.