Ecossistema Spring
Visão consolidada dos projetos oficiais do ecossistema Spring (VMware/Spring), com descrições, uso e links para documentação. Baseado em spring.io/projects e documentação oficial.
Projetos principais
Spring Framework
Base do ecossistema. Fornece:
- Injeção de dependência (IoC) e container
- AOP (Aspect-Oriented Programming)
- Transações declarativas
- Suporte a web (MVC, REST)
- Acesso a dados (JDBC, ORM)
- Messaging
- Testes
Versão atual: 7.x
Spring Boot
Abordagem opinativa para criar aplicações Spring de forma rápida e produtiva.
- Starters prontos (web, data, security, etc.)
- Autoconfiguração
- Servidor embarcado (Tomcat, Jetty, Undertow)
- Actuator para observabilidade
- Spring Initializr para bootstrap
Versão atual: 4.x
Spring Cloud
Conjunto de ferramentas para padrões em sistemas distribuídos e microserviços.
| Projeto | Propósito |
|---|---|
| Config | Configuração centralizada (ex.: Git) |
| Gateway | Roteamento programável, API Gateway |
| Netflix | Integração com Eureka (service discovery) |
| OpenFeign | Cliente HTTP declarativo |
| Circuit Breaker | Resiliência (Resilience4j) |
| Consul | Service discovery e config com Consul |
| Kubernetes | Integração com K8s (discovery, config). Estudo de caso (Baeldung) |
| Stream | Mensageria (Kafka, RabbitMQ) |
| Task | Microserviços de curta duração |
| Contract | Consumer-driven contracts |
| Bus | Barramento de eventos distribuído |
| Vault | Integração com HashiCorp Vault |
| Zookeeper | Service discovery com Zookeeper |
| Function | Lógica via funções, serverless |
| Open Service Broker | API de service broker |
Cloud providers: Spring Cloud AWS, Azure, GCP, Alibaba
Release train: 2025.1.x (Oakwood) → Spring Boot 4.0.x
Spring Data
Acesso a dados unificado para relacionais, NoSQL e serviços de dados.
| Projeto | Armazenamento |
|---|---|
| Commons | Abstrações compartilhadas |
| JPA | Bancos relacionais via JPA |
| JDBC | JDBC síncrono |
| R2DBC | JDBC reativo |
| MongoDB | MongoDB |
| Redis | Redis |
| Elasticsearch | Elasticsearch |
| Cassandra | Apache Cassandra |
| Couchbase | Couchbase |
| Neo4j | Neo4j (grafos) |
| LDAP | LDAP |
| REST | REST automático a partir de repositórios |
Comunidade: Aerospike, ArangoDB, Cosmos DB, DynamoDB, Datastore, Spanner, Hazelcast, Valkey.
Spring Security
Segurança: autenticação, autorização e proteção contra ataques comuns.
- Autenticação (form, JWT, OAuth2, SAML)
- Autorização baseada em métodos e URLs
- CSRF, CORS, cabeçalhos de segurança
- Integração com LDAP, OAuth2 providers
- Spring Security OAuth (legado) → substituído por Authorization Server
Versão atual: 7.x
Spring Authorization Server
Foundation para OAuth 2.1 e OpenID Connect 1.0.
- Grant types: Authorization Code, Client Credentials, Refresh Token, Device Code, Token Exchange
- Tokens: JWT ou referência (opaco)
- Autenticação de cliente: client_secret, JWT, TLS
- Controle total sobre configuração
Versão atual: 1.5.x
API, web e documentação
| Projeto | Uso |
|---|---|
| Spring for GraphQL | Suporte a GraphQL |
| Spring HATEOAS | REST com links HATEOAS |
| Spring REST Docs | Documentação REST a partir de testes |
| Spring Web Flow | Fluxos de navegação controlados |
| Spring Web Services | Web services SOAP contract-first |
Messaging e integração
| Projeto | Tecnologia |
|---|---|
| Spring AMQP | RabbitMQ (AMQP) |
| Spring for Apache Kafka | Apache Kafka |
| Spring for Apache Pulsar | Apache Pulsar |
| Spring Integration | Enterprise Integration Patterns |
| Spring Cloud Stream | Abstração sobre Kafka/RabbitMQ |
Batch, tarefas e orquestração
| Projeto | Propósito |
|---|---|
| Spring Batch | Processamento em lote |
| Spring Cloud Task | Microserviços de curta duração |
| Spring Cloud Data Flow | Orquestração de aplicações de dados |
Sessão, segredos e identidade
| Projeto | Uso |
|---|---|
| Spring Session | Sessão distribuída (Redis, JDBC, etc.) |
| Spring LDAP | Integração LDAP |
| Spring Vault | HashiCorp Vault |
| Spring CredHub | Credenciais (Cloud Foundry) |
Arquitetura e tooling
| Projeto | Uso |
|---|---|
| Spring Modulith | Módulos de domínio em apps Spring Boot |
| Spring Statemachine | Máquinas de estado |
| Spring Shell | CLIs interativas |
| Spring AI | Integração com modelos de IA (LLMs, embeddings) |
| Spring gRPC | Suporte a gRPC |
Release trains e compatibilidade
Spring Boot ↔ Spring Cloud
| Spring Cloud | Spring Boot |
|---|---|
| 2025.1.x (Oakwood) | 4.0.x |
| 2025.0.x (Northfields) | 3.5.x |
| 2024.0.x (Moorgate) | 3.4.x |
| 2023.0.x (Leyton) | 3.3.x, 3.2.x |
Spring Data
Release train único (CalVer). Módulos versionados em conjunto.
Início rápido
- Gerar projeto: start.spring.io
- Escolher dependências: Boot, Data, Security, Cloud, etc.
- Documentação: docs.spring.io
Recursos
- spring.io/projects — Lista oficial de projetos
- Spring Cloud Release Notes
- Spring Data Reference
- Spring Security Reference
- Spring Academy — Treinamentos oficiais