- exploraremos conceitos e práticas essenciais para desenvolvedores modernos em Java, Spring e Microsserviços.
- começaremos a jornada com compreensão da Java Persistence API (JPA): configurar o ambiente de desenvolvimento e utilizar a JPA para persistir dados de forma eficiente em um banco de dados.
- abordaremos o padrão Data Access Object (DAO) para simplificar a manipulação de dados, além de explorar consultas avançadas utilizando a linguagem JPQL. Entenderemos os relacionamentos entre entidades.
- avançaremos para o desenvolvimento de webservices RESTful com Spring Boot: fundamentos do protocolo HTTP e crição de recursos HTTP utilizando o framework Spring Boot: criaremos uma aplicação de exemplo.
- na etapa seguinte, aprofundaremos ainda mais no desenvolvimento com Spring Boot: utilizaremos Data Transfer Objects (DTOs) para consultas e persistência de dados, além de explorar técnicas avançadas de validação e tratamento de exceções. Com consultas personalizadas em JPQL, paginando e ordenando resultados.
- exploraremos o poderoso Spring Security para autenticação e autorização, implementando autenticação JWT (JSON Web Tokens) para garantir a segurança da aplicação: configurar e personalizar o processo de autenticação, criando um controle de acesso robusto e seguro.
- avançaremos para o mundo dos contêineres, explorando o Docker para empacotar e distribuir nossas aplicações de forma eficiente e confiável: aprenderemos conceitos fundamentais de contêineres, juntamente com os comandos essenciais do Docker, e dockerizaremos nossa aplicação Spring Boot para prepará-la para implantação em ambientes de produção.
- exploraremos as vantagens do deploy na nuvem, utilizando o Docker Hub para armazenar e compartilhar imagens de contêineres. Demonstraremos como publicar nossa aplicação na plataforma de nuvem Microsoft Azure, garantindo escalabilidade, disponibilidade e desempenho.
- Para concluir a jornada, exploraremos a arquitetura de microsserviços: diferenças entre monolitos e microsserviços e aprenderá a criar microsserviços altamente escaláveis e resilientes, fundamentais para o desenvolvimento de sistemas distribuídos na era moderna da computação.