Pular para o conteúdo principal

Módulo 14: Técnicas Avançadas Spring Boot

Objetivos do Módulo​

Ao final deste módulo, você será capaz de:

  • Compreender programação reativa com Spring WebFlux
  • Implementar um sistema de cache com Redis
  • Configurar mensageria assíncrona com RabbitMQ
  • Criar tarefas agendadas com @Scheduled
  • Desenvolver aplicações em tempo real com WebSockets

Pré-requisitos​

Antes de começar este módulo, certifique-se de dominar:

  • Módulos 1-12: Fundamentos completos de Spring Boot
  • Módulo 13: Arquitetura de Microsserviços
  • Docker (para Redis, RabbitMQ)
  • Conceitos de programação assíncrona

Plano do Módulo​

Capítulos Teóricos​

#CapítuloDuraçãoDescrição
1Programação Reativa1h30WebFlux, Mono, Flux, R2DBC
2Cache com Redis1h@Cacheable, @CacheEvict, Redis
3Mensageria Assíncrona1h15RabbitMQ, Spring AMQP
4Tarefas Agendadas45min@Scheduled, @Async, Cron
5WebSockets1hSTOMP, SockJS, tempo real

Trabalhos Práticos​

#TPDuraçãoDescrição
1Cache Redis1hCache de uma API
2Mensageria RabbitMQ1h30Sistema de notificações
3WebSocket Chat1h30Aplicação de chat em tempo real
4Tarefas Agendadas45minBatch e relatórios automáticos

Duração total estimada: 10 horas


Conceitos-Chave​

Programação Reativa vs Imperativa​

Imperativa (Spring MVC):
- Thread por requisição
- Bloqueante
- Simples de entender
- Limitado em escalabilidade

Reativa (WebFlux):
- Event loop
- Não bloqueante
- Alta escalabilidade
- Curva de aprendizado

Quando Usar o Quê​

Caso de UsoTecnologia
API CRUD tradicionalSpring MVC
Alta concorrênciaWebFlux
Dados frequentemente lidosCache Redis
Desacoplamento de serviçosRabbitMQ
Notificações em tempo realWebSocket
Relatórios periódicos@Scheduled

Stack Técnica​

TecnologiaVersãoUso
Spring WebFlux3.2.xProgramação reativa
Project Reactor3.6.xMono/Flux
Redis7.xCache distribuído
RabbitMQ3.12.xMessage broker
STOMP1.2Mensageria WebSocket

Arquitetura dos TPs​

Aplicação Avançada
├── API REST (Spring MVC ou WebFlux)
├── Camada de Cache (Redis)
├── Mensageria (RabbitMQ)
├── WebSocket (STOMP)
└── Tarefas Agendadas

Pronto para Começar​

Certifique-se de ter o Docker instalado para este módulo:

# Verificar Docker
docker --version

# Iniciar Redis
docker run -d --name redis -p 6379:6379 redis:7-alpine

# Iniciar RabbitMQ
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

Começar o Capítulo 1: Programação Reativa


Voltar para o início