What you’ll learn
-
Design e arquitetura de aplicações JEE usando os frameworks Spring 6 e Spring Boot 3
-
Criação de uma aplicação REST completa do zero
-
IntelliJ, Maven, Git, Github, Jackson, JAX-B, Actuator, Swagger, Linux e outras dependências e ferramentas úteis ao desenvolvimento Web
-
Desenvolvimento em camadas: Persistence (Entity + Repository), Business (Service) e Controller layers
-
Configuração via Annotations: Lombok, Mapeamento para o Banco, Validação de argumentos de entrada, Mapeamento para XML e JSON
-
Lançamento e tratamento de exceções padrões e customizadas (ErrorResponse, ExceptionHandler e ControllerAdvice)
-
Injeção de Dependências e Inversão de Controle na prática, incluindo resolução de ambigüidades na injeção de Spring Beans (ligação dinâmica, polimorfismo)
-
Spring Data e JDBCTemplate, com a utilização de múltiplos perfis de configuração e múltiplos SGBDs na mesma aplicação (H2 e MySQL)
-
Criação de CRUD DML statements, de forma automática, usando Spring Data (inferencial), e de forma manual e customizada, usando JDBC Template e SQL puro
-
Configuração de conexões com distintos bancos de dados via Properties
-
Configuração via arquivos de propriedades, @Component e @Configuration Java classes (Spring Beans)
-
Externalização de propriedades através da setagem de variáveis de ambiente e propriedades no start da aplicação, incluindo a seleção do perfil de configuração
-
Criação de endpoints na camada de Controle, mapeamento do fluxo HTTP request (Servlet mapping automático), e fluxo de resposta (ResponseBody e HTTPStatus)
-
Criação da resposta ao cliente usando ResponseEntity e ResponseStatus, incluindo mensagens de exceções (ErrorResponse padrão e customizada)
-
Mapeamento e tratamento de atributos de entrada via URL (PathVariable e RequestParam) e via RequestBody (XML e JSON)
-
Logging com Lombok
-
Mappers para desserialização (unmarshalling) e serialização (marshalling) de dados XML e JSON (usando Jackson e JAX-B) e para mapeamento DTO <-> Entity
-
Paginação e Ordenação de dados de resposta ao cliente
-
Fazendo a Compilação e Empacotamento da aplicação final, para deploy, usando Maven Lifecycles (GUI e CLI)
-
Utilizando Docker e Docker Compose no Deploy da aplicação – ambiente de Desenvolvimento e ambiente de Produção (servidores locais e em nuvem)
-
Deploy usando java -jar, mvnw spring-boot:run, docker compose YAML files e imagens Docker (padrões e customizadas)
-
Dockerizando a aplicação Spring Boot e conectando-a a outros containers Docker (SGBD) via Docker Networks
-
Criação e Configuração de instâncias EC2 na Amazon Cloud (AWS): VPC, Security Group, RSA Key Pair, EC2 Instances
-
Acesso a servidores AWS remotos (via terminal local) usando SSH
-
Deploy em servidores locais e em servidores em Nuvem (AWS)
-
Monitoração de serviços contratados na AWS para evitar-se cobranças inesperadas – assinatura GRATUITA de serviços AWS por 12 meses
-
Criação de subdomínios e registro tipo A no seu Registrar e apontamento para o IPv4 da instância EC2 na AWS
-
Teste de todos os endpoints da aplicação REST criada ao longo do curso
