Overview
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
Para todos que queiram aprender a criar aplicações Web de backend utilizando Java EE e Spring (Boot), O Áudio das aulas deste curso está todo em Português, já o material escrito e comentários do código estão em inglês. Futuramente farei uma versão com o áudio também em Inglês do mesmo conteúdo
Noções básicas de programação Java SE, Noções básicas de Sistemas Operacionais e Redes
Spring 6 and Spring Boot 3: Developing JAVA Web Applications
Uma abordagem prática, moderna e didática sobre Design e Arquitetura de Aplicações Web utilizando Java EE e Spring Boot
Welcome all !!! Bem-Vindo a todos !!!
This course has been recorded in Portuguese (audio) and includes the following content and sequence:
Este curso foi gravado em Português (áudio) e inclui o seguinte conteúdo e seqüência:
- Teoria sobre Design e Arquitetura de Aplicações JEE: Spring 6 e Spring Boot 3
- Criando a Aplicação básica do Zero (REST API) no Spring Boot Initializr (Maven Project); adicionando todas as Dependências e criando o Repositório da Aplicação com o Git e GitHub
- Implementando as Classes de Entidade (Domínio) e DTOs; Annotations a nível de Entidade - Annotations Lombok, Annotations de Mapeamento para o Banco, Annotations de Validação de Argumentos e Annotations de Mapeamento para XML e JSON
- Implementando Classes de Repositório (Persistence Layer) e de Serviço (Business Layer), e algumas das Exceções; entendendo e usando Injeção de Dependência via Construtor; aprofundamento em Spring Data (JDBC e JPA): Inversão de Controle na implementação automática de métodos CRUD / DML básicos e como quebrar esta inversão para implementar manualmente métodos customizados complexos usando JDBCTemplate
- Implementando classes de Controle (Controller Layer) e endpoints (HTTP request method + URL) para exposição de recursos REST; mapeamento do fluxo da HTTP request para cada endpoint method; paginação (Pageable) e ordenação (Sort); passagem de atributos na URL do endpoint: PathVariables e RequestParams; passagem e validação de dados no body da HTTP request (RequestBody) e response (ResponseBody); construção da resposta HTTP usando ResponseEntity e ResponseStatus; captura e tratamento local e global de exceções: ExceptionHandler e ControllerAdvice; retornando exceção no corpo da resposta HTTP, usando ErrorResponses customizadas; logging com Lombok; mappers JSON e XML (ObjectMapper) - marshalling e unmarshalling usando Jackson e JAX-B (configurando MIME types); mappers DTO - Entity (ModelMapper); injeção de dependências avançada - Construtor, Fields e Properties; resolução de ambigüidades na injeção: polimorfismo e ligação dinâmica de Spring Beans; criação e configuração de múltiplos perfis de configuração ("dev" e "prod"), com múltimos SGBDs e bancos (H2 e MySQL); SQL init files (esquemas e dados); configuração de conexões: servidor de aplicação e servidores de banco; configuração e teste de SGBD H2 em memória e de MySQL em Docker Container, usando Docker Compose; configuração do Actuator; Swagger GUI
- Compilação e empacotamento de Spring Boot apps usando Maven; deploy em servidores físicos locais usando: java -jar , mvnw spring-boot:run, docker e docker compose; criação e configuração de instâncias EC2 AWS (+VPC, Security Group, RSA Key Pair); acesso a servidores remotos usando SSH; deploy em servidores virtuais remotos na AWS; monitoração de serviços contratados na AWS para evitar-se cobranças inesperadas; 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
Sejam todos muito bem-vindos !!
Espero que este rico e detalhado conteúdo seja útil a todos que queiram de fato se especializar na área de desenvolvimento Web de backend utilizando JAVA EE e Spring Boot !!
* por favor, não esqueça de setar a resolução de reprodução dos videos para 1080p (ao invés de AUTO). A Udemy geralmente seta uma resolução inferior. Apesar de todos os meus videos serem renderizados e feito o upload em 4k, a max resolução na Udemy é 1k (ou menos, se você não setar manualmente).
Atenciosamente,
Daniel Pinheiro Maia, BSc.
Oracle Certified Java Programmer
Bachelor in Computing
Brazil
.
Daniel Pinheiro Maia
Software Engineer and Full Stack Developer,
With knowledge of:
C, Java SE 8+, Java EE (Servlets, JSP, JSTL, Standard Actions, Custom Tags, EL), Lombok, Thymeleaf, Spring Framework, Spring Boot, JUnit 5, Mockito, JPA/Hibernate, relational DBMS as H2, MySQL and Postgres, Apache Maven, Apache Tomcat, Web Services (SOAP and REST Java APIs), Apache CXF, Docker, Bootstrap, HTML 5, XML, CSS, VCS (Git and GitHub), IntelliJ, Eclipse, Netbeans, Visual Studio Code, Linux, Windows, DOS...
... Javascript, Typescript, Node.js, npm, Electron.js, Vue.js and other programming languages, runtime platforms and frameworks...
... Software Engineering, Object-Oriented Programming, Programming Logics, Analysis and Design, Design Patterns, Algorithms, Data Structures, DBMS and other Computer Science disciplines...
... Calculus I, Calculus II, Math Logics, Discrete Math, Linear Algebra, Analytic Geometry, Statistics and other Math Science disciplines....
... Python default and derived external libraries as scipy, numpy, pandas, matplotlib, plotly, seaborn, scikit-learn, etc. PyCharm, Spyder, Jupyter Notebook, Jupyter Lab, Google Colab. Data Science, Artificial Intelligence, Machine Learning, Deep Learning, Artificial Neural Networks.
My Natural Languages' proficiency:
- Portuguese: native
- English: fluent
- Spanish: intermediate
- French: basic
- Latin: basic
.
