Kaique Mitsuo Silva Yamamoto
Arquitetura software

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.

ProjetoPropósito
ConfigConfiguração centralizada (ex.: Git)
GatewayRoteamento programável, API Gateway
NetflixIntegração com Eureka (service discovery)
OpenFeignCliente HTTP declarativo
Circuit BreakerResiliência (Resilience4j)
ConsulService discovery e config com Consul
KubernetesIntegração com K8s (discovery, config). Estudo de caso (Baeldung)
StreamMensageria (Kafka, RabbitMQ)
TaskMicroserviços de curta duração
ContractConsumer-driven contracts
BusBarramento de eventos distribuído
VaultIntegração com HashiCorp Vault
ZookeeperService discovery com Zookeeper
FunctionLógica via funções, serverless
Open Service BrokerAPI 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.

ProjetoArmazenamento
CommonsAbstrações compartilhadas
JPABancos relacionais via JPA
JDBCJDBC síncrono
R2DBCJDBC reativo
MongoDBMongoDB
RedisRedis
ElasticsearchElasticsearch
CassandraApache Cassandra
CouchbaseCouchbase
Neo4jNeo4j (grafos)
LDAPLDAP
RESTREST 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

ProjetoUso
Spring for GraphQLSuporte a GraphQL
Spring HATEOASREST com links HATEOAS
Spring REST DocsDocumentação REST a partir de testes
Spring Web FlowFluxos de navegação controlados
Spring Web ServicesWeb services SOAP contract-first

Messaging e integração

ProjetoTecnologia
Spring AMQPRabbitMQ (AMQP)
Spring for Apache KafkaApache Kafka
Spring for Apache PulsarApache Pulsar
Spring IntegrationEnterprise Integration Patterns
Spring Cloud StreamAbstração sobre Kafka/RabbitMQ

Batch, tarefas e orquestração

ProjetoPropósito
Spring BatchProcessamento em lote
Spring Cloud TaskMicroserviços de curta duração
Spring Cloud Data FlowOrquestração de aplicações de dados

Sessão, segredos e identidade

ProjetoUso
Spring SessionSessão distribuída (Redis, JDBC, etc.)
Spring LDAPIntegração LDAP
Spring VaultHashiCorp Vault
Spring CredHubCredenciais (Cloud Foundry)

Arquitetura e tooling

ProjetoUso
Spring ModulithMódulos de domínio em apps Spring Boot
Spring StatemachineMáquinas de estado
Spring ShellCLIs interativas
Spring AIIntegração com modelos de IA (LLMs, embeddings)
Spring gRPCSuporte a gRPC

Release trains e compatibilidade

Spring Boot ↔ Spring Cloud

Spring CloudSpring 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

  1. Gerar projeto: start.spring.io
  2. Escolher dependências: Boot, Data, Security, Cloud, etc.
  3. Documentação: docs.spring.io

Recursos