Formação Spring Boot
Desenvolvimento de Aplicações Java Modernas
Código do curso: 420-XXX-XX
Sessão: Inverno 2025
Instrutor: A definir
Instituição: inskillflow academy
Visão Geral do Curso
Esta formação completa permitirá que você domine o Spring Boot, o framework Java mais popular para o desenvolvimento de aplicações modernas. Da introdução aos conceitos avançados, você aprenderá a criar aplicações profissionais robustas e escaláveis.
Objetivos de Aprendizagem
Ao final deste curso, você será capaz de:
- Compreender os fundamentos do Spring Boot e seu ecossistema
- Desenvolver aplicações web com Spring MVC e REST APIs
- Gerenciar a persistência de dados com Spring Data JPA
- Proteger suas aplicações com Spring Security
- Fazer deploy e monitorar aplicações em produção
- Criar microservices com Spring Cloud
- Aplicar boas práticas de desenvolvimento Java moderno
Abordagem Pedagógica
70% Prática - 30% Teoria
Cada módulo combina:
- Aulas expositivas sobre os conceitos fundamentais
- Laboratórios práticos hands-on
- Projetos reais de desenvolvimento
- Exercícios e quizzes
Capítulo 1 — Lista de Quizzes
Teste seus conhecimentos após cada módulo:
| Módulo | Quiz | Tema |
|---|---|---|
| 2 | Quiz Módulo 2 | Primeiros passos, Spring Initializr, anotações básicas |
| 3 | Quiz Módulo 3 | Arquitetura em camadas, CRUD, validação |
| 4 | Quiz Módulo 4 | PostgreSQL, Jakarta Persistence, Hibernate, Lombok |
| 5 | Quiz Capítulo 1 | IoC e injeção de dependências |
| 5 | Quiz Capítulo 2 | Tipos de injeção, @Qualifier |
| 5 | Quiz Capítulo 3 | Beans e contexto Spring |
| 5 | Quiz Capítulo 4 | Escopos e configuração |
| 6 | Quiz Módulo 6 | JPA avançado, convenções, relações, @Query |
| 7 | Quiz Módulo 7 | Datasources, transações, Flyway |
| 8 | Quiz Módulo 8 | Spring Security, JWT, OAuth2 |
| 9 | Quiz Módulo 9 | Testes unitários, integração, MockMvc |
| 10 | Quiz Módulo 10 | Exceptions, logging, Logback |
| 11 | Quiz Módulo 11 | Actuator, Prometheus, Grafana |
| 12 | Quiz Módulo 12 | Docker, CI/CD, deploy |
| 13 | Quiz Módulo 13 | Microservices, Eureka, Gateway |
| 14 | Quiz Módulo 14 | Cache Redis, RabbitMQ, WebSocket |
Capítulo 2 — Lista de Trabalhos Práticos
Todos os TPs do curso, organizados por módulo:
Módulo 1 — Introdução
| TP | Tema | Duração |
|---|---|---|
| TP1.1 | Instalação do Java JDK 17 (Windows, macOS, Linux) | 20-30 min |
| TP1.2 | Instalação do Maven 3.9.x (Windows, macOS, Linux) | 30-45 min |
Módulo 2 — Primeiros Passos
| TP | Tema | Duração |
|---|---|---|
| TP2.1 | Aplicação "Greeting" com Spring Boot | 1-2h |
| TP2.2 | Banco de dados H2 (memória e persistência) | 1-2h |
Módulo 3 — Arquitetura em Camadas e CRUD
| TP | Tema | Duração |
|---|---|---|
| TP3.1 | Arquitetura CRUD completa (guiado com código) | 4-6h |
| TP3.2 | CRUD autônomo — mesmo enunciado, sem código (desafio) | 2-3h |
Módulo 4 — Bancos de Dados em Produção
| TP | Tema | Duração |
|---|---|---|
| TP4.1 | Migração PostgreSQL com Jakarta Persistence | 2-3h |
Módulo 5 — Spring Core (IoC / DI)
| TP | Tema | Duração |
|---|---|---|
| TP5.1 | Injeção de dependências avançada | 1-2h |
| TP5.2 | Gerenciamento de beans e escopos | 1-2h |
| TP5.3 | Configuração e profiles | 1-2h |
Módulo 6 — JPA Avançado
| TP | Tema | Duração |
|---|---|---|
| TP6.1 | Convenções de nomenclatura avançadas | 2h |
| TP6.2 | Relações Employee-Department | 2-3h |
| TP6.3 | Exercício Airport-Flight-Passenger | 3-4h |
Módulo 7 — Transações e Migrações
| TP | Tema | Duração |
|---|---|---|
| TP7.1 | Configuração de Datasource | 1-2h |
| TP7.2 | Transações e Rollback | 2h |
| TP7.3 | Migração com Flyway | 1-2h |
Módulo 8 — Spring Security
| TP | Tema | Duração |
|---|---|---|
| TP8.1 | Autenticação por formulário | 1-2h |
| TP8.2 | Autenticação JWT | 2-3h |
| TP8.3 | Papéis e permissões | 2h |
| TP8.4 | OAuth2 com Google | 2h |
Módulo 9 — Testes
| TP | Tema | Duração |
|---|---|---|
| TP9.1 | Testes unitários do Service Layer | 2h |
| TP9.2 | Testes de integração dos Repositories | 2h |
| TP9.3 | Testes REST API com MockMvc | 2h |
Módulo 10 — Exceptions e Logging
| TP | Tema | Duração |
|---|---|---|
| TP10.1 | Gerenciamento centralizado de erros | 2h |
| TP10.2 | Sistema de logging profissional | 1-2h |
Módulo 11 — Monitoring
| TP | Tema | Duração |
|---|---|---|
| TP11.1 | Configuração Actuator | 1-2h |
| TP11.2 | Monitoring Prometheus e Grafana | 2-3h |
Módulo 12 — Deploy
| TP | Tema | Duração |
|---|---|---|
| TP12.1 | Dockerização completa | 2-3h |
| TP12.2 | Pipeline CI/CD e deploy | 2-3h |
Módulo 13 — Microservices
| TP | Tema | Duração |
|---|---|---|
| TP13.1 | Eureka Server e clientes | 2h |
| TP13.2 | Config Server | 1-2h |
| TP13.3 | API Gateway | 2h |
| TP13.4 | Feign e Resilience4j | 2-3h |
Módulo 14 — Técnicas Avançadas
| TP | Tema | Duração |
|---|---|---|
| TP14.1 | Cache com Redis | 2h |
| TP14.2 | Messaging com RabbitMQ | 2h |
| TP14.3 | WebSocket tempo real | 2h |
| TP14.4 | Tarefas agendadas | 1-2h |
Plano de Curso - 19 Módulos
MÓDULO 1 - Introdução ao Spring Boot
Duração: 1 aula
Conteúdo:
- História e evolução do Spring Boot
- Modelo MVC (Model-View-Controller)
- Apache Tomcat e servidores embarcados
- Jackson e manipulação de JSON
- Auto-configuração e convenções
Objetivos:
- Compreender o ecossistema Spring
- Identificar as vantagens do Spring Boot
- Descobrir os conceitos fundamentais
MÓDULO 2 - Primeiros Passos com Spring Boot [CONCLUÍDO]
Duração: 2-3 aulas
Conteúdo:
- Spring Initializr
- Estrutura de um projeto Spring Boot
- Arquivos de configuração (application.properties/yml)
- Anotações básicas (@RestController, @Service, @Repository)
- Introdução aos Repositories JPA (4 métodos básicos: save, findById, findAll, deleteById)
- Convenções de nomenclatura simples (findBy, And, Or)
Trabalhos Práticos:
- TP1: Aplicação Greeting com Visual Studio Code
- TP2: Banco de Dados H2 (Memória e Persistência)
Nota pedagógica: Módulo simplificado para focar nos fundamentos. Os TPs avançados foram movidos para os Módulos 3 e 4 com a teoria apropriada.
MÓDULO 3 - Arquitetura em Camadas e CRUD Completo [CONCLUÍDO]
Duração: 2-3 aulas
Conteúdo Teórico:
- A camada Service em detalhes (papel, responsabilidades, separação de preocupações)
- Validação de dados com Bean Validation (JSR 380)
- Anotações: @NotNull, @NotEmpty, @Size, @Min, @Max, @Email, @Pattern, @Valid
- Gerenciamento profissional de erros HTTP
- ResponseEntity e códigos de status HTTP (200, 201, 204, 400, 404, 500)
- @ExceptionHandler e @ControllerAdvice
- Arquitetura 3 camadas profissional
Trabalhos Práticos:
- TP1: Arquitetura CRUD Completa (API Product com validação e tratamento de erros)
Pré-requisito: Módulo 2 concluído
Nota: Este módulo contém o antigo TP3 do Módulo 2, agora com TODA a teoria necessária.
MÓDULO 4 - Bancos de Dados em Produção [CONCLUÍDO]
Duração: 2-3 aulas
Conteúdo Teórico:
- PostgreSQL: Instalação, configuração, ferramentas de administração
- Jakarta vs Javax Persistence (histórico, migração, compatibilidade)
- Hibernate e estratégias DDL (none, validate, update, create, create-drop)
- Dialetos Hibernate e configuração
- Lombok: @Data, @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @Builder
- Migração entre bancos de dados
Trabalhos Práticos:
- TP1: Migração PostgreSQL e Produção (com Lombok, Jakarta, multi-BD)
Pré-requisito: Módulos 2 e 3 concluídos
Nota: Este módulo contém o antigo TP4 do Módulo 2, agora com TODA a teoria necessária.
MÓDULO 5 - Spring Core - IoC e DI Avançado [Em breve]
Duração: 2 aulas
Conteúdo:
- Inversão de Controle (IoC) aprofundada
- Injeção de Dependências (DI) avançada
- Beans e contexto Spring
- Ciclo de vida dos beans
- Escopos (@Singleton, @Prototype, @Request, @Session)
- Configuração Java vs XML
Labs:
- Lab 5.1: Injeção de dependências avançada
- Lab 5.2: Gerenciamento de beans e escopos
- Lab 5.3: Configuração personalizada
MÓDULO 6 - Spring Data JPA Avançado [CONCLUÍDO]
Duração: 3 aulas
Conteúdo:
- Convenções de nomenclatura completas (15+ palavras-chave: Between, LessThan, GreaterThan, Like, In, IsNull, etc.)
- Joins e relações complexas (@OneToMany, @ManyToOne, @ManyToMany)
- JPQL e queries customizadas com @Query
- Queries nativas SQL
- Paginação e ordenação avançadas
- Otimização de performance (lazy loading, fetch strategies)
Labs:
- Lab 6.1: Convenções de nomenclatura avançadas
- Lab 6.2: Joins Employee-Department
- Lab 6.3: Exercício Airport-Flight-Passenger (20 questões)
- Lab 6.4: Avaliação completa com gabarito
Nota: Este módulo contém o conteúdo JPA avançado que estava originalmente no Módulo 2 (Capítulo 5 original).
MÓDULO 7 - Bancos de Dados e Transações [Em breve]
Duração: 2 aulas
Conteúdo:
- Configuração de datasources
- Gerenciamento de transações (@Transactional)
- Migração de schema (Flyway, Liquibase)
- Conexão com diferentes bancos (MySQL, PostgreSQL, H2)
Labs:
- Lab 7.1: Configuração multi-datasources
- Lab 7.2: Transações e rollback
- Lab 7.3: Migração com Flyway
MÓDULO 8 - Spring Security
Duração: 2 aulas
Conteúdo:
- Autenticação e autorização
- Configuração de segurança
- JWT (JSON Web Tokens)
- OAuth2 e SSO
- Proteção CSRF
Labs:
- Lab 8.1: Autenticação básica
- Lab 8.2: JWT Authentication
- Lab 8.3: Papéis e permissões
MÓDULO 9 - Testes com Spring Boot
Duração: 2 aulas
Conteúdo:
- Testes unitários com JUnit 5
- Testes de integração
- MockMvc e WebTestClient
- Mocking com Mockito
- Cobertura de código
Labs:
- Lab 9.1: Testes unitários
- Lab 9.2: Testes de integração
- Lab 9.3: Testes REST API
MÓDULO 10 - Gerenciamento de Exceptions e Logging
Duração: 1 aula
Conteúdo:
- @ControllerAdvice e gerenciamento global
- Respostas de erro customizadas
- Logging com SLF4J e Logback
- Níveis de log e configuração
Labs:
- Lab 10.1: Gerenciador global de exceptions
- Lab 10.2: Configuração de logging
- Lab 10.3: Logs estruturados
MÓDULO 11 - Spring Boot Actuator e Monitoring
Duração: 1 aula
Conteúdo:
- Endpoints Actuator
- Métricas e health checks
- Monitoring com Prometheus e Grafana
- Tracing distribuído
Labs:
- Lab 11.1: Configuração Actuator
- Lab 11.2: Métricas customizadas
- Lab 11.3: Dashboard de monitoring
MÓDULO 12 - Deploy e Produção
Duração: 2 aulas
Conteúdo:
- Packaging (JAR vs WAR)
- Profiles de ambiente
- Deploy em servidores
- Containerização com Docker
- CI/CD com GitHub Actions
Labs:
- Lab 12.1: Build e packaging
- Lab 12.2: Dockerfile e Docker Compose
- Lab 12.3: Pipeline CI/CD
MÓDULO 13 - Spring Cloud e Microservices
Duração: 2 aulas
Conteúdo:
- Arquitetura de microsserviços
- Service discovery (Eureka)
- Configuração centralizada (Config Server)
- API Gateway
- Comunicação entre serviços
Labs:
- Lab 13.1: Eureka Server e clientes
- Lab 13.2: Config Server
- Lab 13.3: API Gateway com Spring Cloud Gateway
MÓDULO 14 - Técnicas Avançadas
Duração: 2 aulas
Conteúdo:
- Programação reativa (WebFlux)
- Cache com Spring Cache (Redis)
- Mensageria assíncrona (RabbitMQ, Kafka)
- Tarefas agendadas
- WebSockets
Labs:
- Lab 14.1: Cache Redis
- Lab 14.2: Messaging com RabbitMQ
- Lab 14.3: WebSocket real-time
MÓDULO 15 - Projeto Final
Duração: 3 aulas
Conteúdo:
- Projeto completo de A a Z
- Aplicação e-commerce ou sistema de gestão
- Integração de todos os conceitos
- Apresentação e code review
Entregáveis:
- Aplicação completa funcional
- Documentação técnica
- Testes completos
- Deploy Docker
MÓDULO 16 - Projeto E-Contact Backend
Duração: 3 aulas
Conteúdo:
- Projeto completo guiado — API REST de formulário de contato
- Autenticação e segurança JWT
- Banco de dados PostgreSQL
- Integração Frontend
- Deploy com GitHub Codespaces
Capítulos:
- Capítulo 1: Início com Codespaces
- Capítulo 2: Troubleshooting
- Capítulo 3: Integração Frontend
- Capítulo 4: Curso Complementar
- Capítulo 5: Segurança Avançada
MÓDULO 17 - Anotações Spring Boot (Referência)
Conteúdo:
- Referência completa de todas as anotações Spring Boot
- Anotações Core (IoC, DI, Configuração)
- Anotações Web e REST
- Anotações Data/JPA
- Anotações Security, Test e Avançadas
- Dicionário A-Z (120+ anotações)
Capítulos:
- Capítulo 1: Anotações Core
- Capítulo 2: Anotações Web/REST
- Capítulo 3: Anotações Data/JPA
- Capítulo 4: Security, Test e Avançadas
- Capítulo 5: Dicionário A-Z
MÓDULO 18 - Perguntas de Entrevista
Conteúdo:
- Preparação completa para entrevistas técnicas Java/Spring Boot
- Perguntas classificadas por tema e nível de dificuldade
- Exercícios de código, algoritmos, refactoring
- Pegadinhas comuns e conceitos fundamentais
Capítulos:
- Capítulo 1: JPA & Banco de Dados (N+1, Lazy/Eager, @Transactional)
- Capítulo 2: Exercícios de Refactoring (Guard clauses, Strategy, SRP)
- Capítulo 3: Algoritmos & Estruturas (HashMap, Stack, Binary Search)
- Capítulo 4: Design REST & Design Patterns (Builder, Singleton, Observer)
- Capítulo 5: Debug & Code review
- Capítulo 6: Pegadinhas Java Fundamentais (== vs .equals(), hashCode, final, static)
- Capítulo 7: Coleções Java (List, Map, Set, Stream API)
- Capítulo 8: O que é...? (DTO, MVC, CRUD, IoC, ORM, Docker, CI/CD, JWT)
MÓDULO 19 - Repositórios GitHub (Referências)
Conteúdo:
- Links para todos os repositórios da formação
- Repositório do site de documentação (Docusaurus)
- Repositório do projeto e-contact-backend
- Anexos Security
- Recursos complementares
Ferramentas e Tecnologias
Ambiente de Desenvolvimento
- IDE: IntelliJ IDEA / Eclipse / VS Code
- JDK: Java 17 ou 21 (LTS)
- Build Tool: Maven ou Gradle
- Git: Controle de versão
Tecnologias Spring
- Spring Boot 3.x
- Spring MVC
- Spring Data JPA
- Spring Security
- Spring Cloud
- Spring Boot Actuator
Bancos de Dados
- H2 (desenvolvimento)
- MySQL / PostgreSQL (produção)
- Redis (cache)
Ferramentas Complementares
- Docker e Docker Compose
- Postman / Insomnia
- Swagger / OpenAPI
- Lombok
Competências Desenvolvidas
Competências Técnicas
Desenvolvimento Backend:
- Design e desenvolvimento de APIs REST
- Gerenciamento de persistência com JPA/Hibernate
- Segurança de aplicações web
- Testes automatizados
- Deploy e DevOps
Arquitetura:
- Padrões de design (MVC, Repository, Service Layer)
- Arquitetura de microsserviços
- Separação de responsabilidades
- Design de APIs RESTful
Boas Práticas:
- Clean Code
- Princípios SOLID
- Convention over Configuration
- Test-Driven Development (TDD)
Competências Profissionais
- Metodologia Ágil
- Documentação técnica
- Trabalho em equipe
- Resolução de problemas
- Acompanhamento tecnológico
Avaliações
Trabalhos Práticos (50%)
- TP1: Aplicação web CRUD simples (10%)
- TP2: API REST com JPA e segurança (15%)
- TP3: Aplicação completa com testes (25%)
Laboratórios (20%)
- Labs semanais (15%)
- Participação e engajamento (5%)
Projeto Final (30%)
- Aplicação completa (20%)
- Apresentação e documentação (10%)
Total: 100%
Pré-requisitos
Conhecimentos Prévios
- Programação orientada a objetos (POO)
- Fundamentos de Java
- Conceitos web (HTTP, HTML, CSS)
- Bancos de dados relacionais (SQL)
Requisitos de Hardware
- Computador com no mínimo 8 GB RAM (16 GB recomendado)
- 50 GB de espaço livre em disco
- Conexão de Internet estável
Softwares a Instalar
- JDK 17 ou 21
- IntelliJ IDEA Community (ou outro IDE)
- MySQL ou PostgreSQL
- Docker Desktop
- Postman
Recursos do Curso
Documentação Oficial
Livros Recomendados
- "Spring Boot in Action" - Craig Walls
- "Pro Spring Boot 2" - Felipe Gutierrez
- "Spring Microservices in Action" - John Carnell
Comunidade
Progressão do Curso
[CONCLUÍDO] MÓDULO 1 - Introdução ao Spring Boot
[CONCLUÍDO] MÓDULO 2 - Primeiros Passos com Spring Boot
[CONCLUÍDO] MÓDULO 3 - Arquitetura em Camadas e CRUD
[CONCLUÍDO] MÓDULO 4 - Bancos de Dados em Produção
[CONCLUÍDO] MÓDULO 5 - Spring Core - IoC e DI Avançado
[CONCLUÍDO] MÓDULO 6 - Spring Data JPA Avançado
[CONCLUÍDO] MÓDULO 7 - Bancos de Dados e Transações
[CONCLUÍDO] MÓDULO 8 - Spring Security
[CONCLUÍDO] MÓDULO 9 - Testes com Spring Boot
[CONCLUÍDO] MÓDULO 10 - Gerenciamento de Exceptions e Logging
[CONCLUÍDO] MÓDULO 11 - Spring Boot Actuator e Monitoring
[CONCLUÍDO] MÓDULO 12 - Deploy e Produção
[CONCLUÍDO] MÓDULO 13 - Spring Cloud e Microservices
[CONCLUÍDO] MÓDULO 14 - Técnicas Avançadas
[CONCLUÍDO] MÓDULO 15 - Projeto Final
[CONCLUÍDO] MÓDULO 16 - Projeto E-Contact Backend
[CONCLUÍDO] MÓDULO 17 - Anotações Spring Boot (Referência)
[CONCLUÍDO] MÓDULO 18 - Perguntas de Entrevista
[CONCLUÍDO] MÓDULO 19 - Repositórios GitHub (Referências)
Comece Agora!
Explore os módulos no menu lateral e comece seu aprendizado de Spring Boot!
Bom curso e bom desenvolvimento!
Última atualização: Março 2025