Pular para o conteúdo
O Complemento de Dois
  • Concursos
  • Calculadora
  • Estudos
  • Discord
  • Publicações
Home / Programação / Framework Spring

Framework Spring

Inversão de Controle (IoC)

A Inversão de Controle (IoC) no Spring é um princípio onde o framework assume o controle do ciclo de vida e da ligação (wiring) dos objetos, em vez de a classe criá-los diretamente. O Spring gerencia esses objetos como “beans” em um contêiner, injetando as dependências automaticamente, o que desacopla o código e delega o controle de fluxo ao próprio framework.

Beans

Um bean é qualquer objeto Java cujo ciclo de vida (criação, configuração e destruição) é gerenciado pelo contêiner do Spring (IoC Container).

Injeção de Dependência (DI)

A Injeção de Dependência é o mecanismo prático para realizar a IoC. Se a classe A precisa da classe B, o Spring “injeta” a classe B dentro da classe A automaticamente.

No Spring, o IoC é o o quê (o objetivo final de desacoplamento), e a DI é o como (a técnica que o Spring usa para alcançar essa inversão). Por isso muitos usam os termos como sinônimos, mas tecnicamente a DI é uma forma de realizar o IoC.

Arquitetura básica

Camada / MóduloO que faz?Anotação Comum
Spring MVC / WebCuida da comunicação HTTP, endpoints, rotas e APIs REST.@RestController
Spring Service (Negócio)Onde fica a lógica do seu sistema, validações e regras de negócio.@Service
Spring Data (Persistência)Facilita a comunicação com o banco de dados (SQL/NoSQL) sem você escrever queries brutas.@Repository
Spring BootNão é um framework diferente, mas uma “capa” que auto-configura tudo isso para você não perder tempo com arquivos XML ou configurações complexas.@SpringBootApplication

Spring Cloud

Arquitetura de microsserviços

Service Discovery (Eureka): funciona como uma lista telefônica.

API Gateway (Spring Cloud Gateway, Zuul): funciona como o “porteiro” ou recepção do seu sistema.

Circuit Breaker (Resilience4j): se o serviço começar a falhar muito, em vez de travar a aplicação esperando um retorno que não vai acontecer, o Spring Cloud corta a comunicação imediatamente e executa uma lógica de contingência (um fallback).

Configuração Centralizada: Config Server centraliza as configurações de todos os microsserviços (geralmente em um repositório Git privado). Quando um microsserviço inicia, ele busca suas configurações e propriedades direto desse servidor central.

Persistência

JPA (Java Persistence API): É uma especificação (um conjunto de interfaces) do Java padrão (Jakarta EE) que define como mapear objetos Java para tabelas de um banco de dados relacional (ORM). Ela não faz nada sozinha, apenas dita as regras.

Hibernate: É uma implementação concreta da especificação JPA. Ele é o “motor” que realmente lê as anotações (como @Entity, @Id) e traduz as operações de objetos (como save, find) para comandos SQL no banco de dados.

Outras ferramentas

Hibernate Envers

O que faz: Auditoria de dados. Ele cria automaticamente tabelas de histórico (ex: cliente_AUD) para rastrear quem alterou o quê, quando e qual era o valor antigo.

Como usa: Basta anotar a entidade com @Audited. Toda inserção, atualização ou exclusão gera um registro na tabela de auditoria.

Objetivo: Atender requisitos legais ou de negócio que exigem trilha de alterações (ex: sistemas financeiros, ERPs).

Flyway

O que faz: Versionamento de esquema (migrations). Ele aplica scripts SQL (V1__cria_tabela.sql, V2__adiciona_coluna.sql) de forma controlada, garantindo que o banco de dados esteja sempre na versão esperada pelo código.

Como usa: Scripts SQL versionados na pasta db/migration. O Flyway mantém uma tabela de controle (flyway_schema_history) para saber quais já foram executados.

Objetivo: Manter consistência entre bancos de desenvolvimento, teste e produção, aplicando mudanças estruturais de forma confiável.

Categorias: Programação
Tags: framework, java, spring
Publicado em: 07/06/2026 20:40 e Atualizado em: 07/06/2026 20:40

Compartilhe este post:

Facebook Twitter LinkedIn WhatsApp

Navegação de Post

Post anterior: Identidade e acesso
Próximo post: RabbitMQ

Posts Recentes

  • MPS
    MR-MPS-SW13 de junho de 2026
  • RabbitMQ
    RabbitMQ8 de junho de 2026
  • Spring
    Framework Spring7 de junho de 2026
  • oauth
    Identidade e acesso5 de junho de 2026
  • GoF
    Padrões de Projeto GoF1 de junho de 2026
  • Política de privacidade

2026. O Complemento de Dois. Todos os direitos reservados.