Pular para o conteúdo principal

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óduloQuizTema
2Quiz Módulo 2Primeiros passos, Spring Initializr, anotações básicas
3Quiz Módulo 3Arquitetura em camadas, CRUD, validação
4Quiz Módulo 4PostgreSQL, Jakarta Persistence, Hibernate, Lombok
5Quiz Capítulo 1IoC e injeção de dependências
5Quiz Capítulo 2Tipos de injeção, @Qualifier
5Quiz Capítulo 3Beans e contexto Spring
5Quiz Capítulo 4Escopos e configuração
6Quiz Módulo 6JPA avançado, convenções, relações, @Query
7Quiz Módulo 7Datasources, transações, Flyway
8Quiz Módulo 8Spring Security, JWT, OAuth2
9Quiz Módulo 9Testes unitários, integração, MockMvc
10Quiz Módulo 10Exceptions, logging, Logback
11Quiz Módulo 11Actuator, Prometheus, Grafana
12Quiz Módulo 12Docker, CI/CD, deploy
13Quiz Módulo 13Microservices, Eureka, Gateway
14Quiz Módulo 14Cache 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​

TPTemaDuração
TP1.1Instalação do Java JDK 17 (Windows, macOS, Linux)20-30 min
TP1.2Instalação do Maven 3.9.x (Windows, macOS, Linux)30-45 min

Módulo 2 — Primeiros Passos​

TPTemaDuração
TP2.1Aplicação "Greeting" com Spring Boot1-2h
TP2.2Banco de dados H2 (memória e persistência)1-2h

Módulo 3 — Arquitetura em Camadas e CRUD​

TPTemaDuração
TP3.1Arquitetura CRUD completa (guiado com código)4-6h
TP3.2CRUD autônomo — mesmo enunciado, sem código (desafio)2-3h

Módulo 4 — Bancos de Dados em Produção​

TPTemaDuração
TP4.1Migração PostgreSQL com Jakarta Persistence2-3h

Módulo 5 — Spring Core (IoC / DI)​

TPTemaDuração
TP5.1Injeção de dependências avançada1-2h
TP5.2Gerenciamento de beans e escopos1-2h
TP5.3Configuração e profiles1-2h

Módulo 6 — JPA Avançado​

TPTemaDuração
TP6.1Convenções de nomenclatura avançadas2h
TP6.2Relações Employee-Department2-3h
TP6.3Exercício Airport-Flight-Passenger3-4h

Módulo 7 — Transações e Migrações​

TPTemaDuração
TP7.1Configuração de Datasource1-2h
TP7.2Transações e Rollback2h
TP7.3Migração com Flyway1-2h

Módulo 8 — Spring Security​

TPTemaDuração
TP8.1Autenticação por formulário1-2h
TP8.2Autenticação JWT2-3h
TP8.3Papéis e permissões2h
TP8.4OAuth2 com Google2h

Módulo 9 — Testes​

TPTemaDuração
TP9.1Testes unitários do Service Layer2h
TP9.2Testes de integração dos Repositories2h
TP9.3Testes REST API com MockMvc2h

Módulo 10 — Exceptions e Logging​

TPTemaDuração
TP10.1Gerenciamento centralizado de erros2h
TP10.2Sistema de logging profissional1-2h

Módulo 11 — Monitoring​

TPTemaDuração
TP11.1Configuração Actuator1-2h
TP11.2Monitoring Prometheus e Grafana2-3h

Módulo 12 — Deploy​

TPTemaDuração
TP12.1Dockerização completa2-3h
TP12.2Pipeline CI/CD e deploy2-3h

Módulo 13 — Microservices​

TPTemaDuração
TP13.1Eureka Server e clientes2h
TP13.2Config Server1-2h
TP13.3API Gateway2h
TP13.4Feign e Resilience4j2-3h

Módulo 14 — Técnicas Avançadas​

TPTemaDuração
TP14.1Cache com Redis2h
TP14.2Messaging com RabbitMQ2h
TP14.3WebSocket tempo real2h
TP14.4Tarefas agendadas1-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