Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codingloria/cursojavaespring
Aulas, exercícios e Desafios propostos do curso Descomplicando Java e Spring da Kamila Santos
https://github.com/codingloria/cursojavaespring
api api-rest http java jdk jre jvm poo rest spring-boot spring-data spring-security
Last synced: about 9 hours ago
JSON representation
Aulas, exercícios e Desafios propostos do curso Descomplicando Java e Spring da Kamila Santos
- Host: GitHub
- URL: https://github.com/codingloria/cursojavaespring
- Owner: codinGloria
- Created: 2024-01-25T16:44:31.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-07-23T16:23:55.000Z (2 months ago)
- Last Synced: 2024-09-25T01:40:53.463Z (about 11 hours ago)
- Topics: api, api-rest, http, java, jdk, jre, jvm, poo, rest, spring-boot, spring-data, spring-security
- Language: Java
- Homepage:
- Size: 86.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Curso: Descomplicando Java e Spring ✨
Plataforma: LinuxTips
No treinamento é ensinado a dominar a linguagem de programação Java e o framework Spring de maneira simplificada e eficaz. O curso aborda desde os conceitos fundamentais do Java, como sintaxe e estruturas de controle, até tópicos avançados relacionados ao desenvolvimento de aplicativos web e corporativos. É passado conhecimento sobre como usar o Spring, um framework poderoso que simplifica o desenvolvimento de aplicativos Java, incluindo injeção de dependência, controle transacional e desenvolvimento baseado em componentes.
Ao final do treinamento, estarei apta a criar aplicações Java robustas e eficientes, aproveitando todo o potencial dessa linguagem versátil e amplamente utilizada.
Este curso é composto por 29 seções, listadas abaixo:
1 - História do Java e Mercado de Trabalho
- O que é Java? ✅
- O que é Spring? ✅
- Mercado de trabalho ✅
- O que te espera nas próximas aulas ✅
2 - JDK, JRE, JVM e Setup do Ambiente
- O que é JDK? ✅
- JRE ✅
- JVM ✅
- Setup do Ambiente ✅
3 - Tipos de Dados e Operadores
- Variáveis e tipos de dados ✅
- Operadores ✅
4 - Desvios condicionais e laços de repetição
- Condicionais ✅
- Repetição ✅
5 - Arrays
- Criação, length, forEach, AsList, List.of e Copy ✅
- Fill, equals e sorted ✅
6 - POO: O que é? Encapsulamento e abstração
- O que é programação orientada a objetos? ✅
- Criando objetos e atributos ✅
- Criando os métodos do nosso objeto ✅
- Encapsulamento ✅
- Abstração: Classe e métodos abstratos ✅
- Abstração: Via interfaces ✅
7 - POO: Herança e Polimorfismo
- Herança ✅
- Polimorfismo ✅
8 - Lendo elementos via console e manipulando arquivos
- Scanner: usando o terminal para receber informações ✅
- File: Escrevendo em arquivos ✅
- File: lendo o conteúdo de um arquivo ✅
9 - Enums e elementos estáticos
- Trabalhando com Enums ✅
- Static: campos / atributos estáticos ✅
- Static: Métodos estáticos ✅
- Static: Classes aninhadas estáticas ✅
10 - API de Collections e Generics
- Por dentro da API de collections: hierarquia das classes e interfaces ✅
- Collections API - List: ArrayList, LinkedList, VectorList ✅
- Collections API - Queue: Priority Queue ✅
- Collections API - Set: HashSet, LinkedHashSet ✅
- Collections API - Map: HashMap e HashTable ✅
- Generics ✅
11 - Classe Object
- Conhecendo o pacote java.lang ✅
- Classe Object ✅
- toString() ✅
- equals() ✅
- HashCode() ✅
12 - Typecasting
- O que é typecasting? ✅
- Widening Type Casting ✅
- Narrowing Type Casting ✅
- Upcasting ✅
- Downcasting ✅
- Autoboxing e Unboxing ✅
13 - Exceptions
- O que são exceptions? ✅
- Checked Exceptions ✅
- Unchecked Exceptions ✅
14 - Novidades do Java 8 ao Java 19
- Streams API
- Lambda Expressions
- Method Reference
- Text Blocks
- Records
- Pattern Matching for Switch
- Virtual Threads
- Java Date and Time API
15 - Jvm: Arquitetura, componentes e funcionamento
- O que é JVM?
- Linguagem interpretada, compilada e o Java ??
- Class Loader
- JVM Memory: Method Area, Heap, Stack, PC Registers
- Interpreter, JIT compiler e segmented Code Cache
- Garbage Collector
16 - API? CRUD? HTTP? REST? Que sopa de letrinhas é essa?
- CRUD
- API
- REST
- HTTP: Métodos HTTP
- HTTP: Status HTTP
17 - Spring: Ecossistema e principais conceitos
- O que é Spring e quais seus principais projetos?
- Spring x Jakarta EE
- O que é injeção de dependências e IOC Container?
- Annotations: @SpringBootApplication, @Component, @Repository, @RestController
- Annotations: @Autowired, @Value, @Configuration, @Bean
- Annotations: @EnableAutoConfiguration, @RequestMapping, @PostMapping, @GetMapping
- Annotations: @PutMapping, @PatchMapping, @DeleteMapping, @RequestParam, @PathVariable
- Princípios SOLID
18 - Criando sua primeira API com Spring
- Criando seu primeiro projeto no Spring Initialzr
- Por dentro do seu primeiro projeto Spring
- Estrutura base de um projeto
- Expondo seus primeiros endpoints
19 - Spring Data JPA (Parte 1)
- Banco de dados relacional: conceitos e normalização
- SQL: Criando sua primeira tabela
- SQL: Inserindo e listando dados na tabela
- SQL: Atualizando e excluindo dados da tabela
- O que é JDBC?
- O que é Hibernate?
- O que é JPA?
- Criando a entidade da nossa aplicação
- Criando querys dos métodos CRUD com JPA Repository
20 - Spring Data JPA (Parte 2)
- Desenvolvendo a service e a controller
- @CreationTimestamp e @UpdateTimestamp
- @Query: Criando queries personalizadas
- Desafio 1: Crie ao menos mais 2 consultas diferentes usando o @query
- Desafio 2: Como filtrar dados com espaços?
- Derived Query Methods
- Desafio 3: Explorando outros filtros com derived query methods
- Cascade Types
- Relacionamento 1:1, 1:n, n:1 e n:n
- Tipos de Join
- Fetch Types
- Desafio 4: Como atualizar os dados bancários?
21 - NoSQL: Spring Boot + DynamoDB
- NoSQL
- Introdução a DynamoDB
- Introdução a localstack
- Setup - Dockeer, AWS CLI
- Spring Boot + DynamoDB + Localstack (parte 1)
- Spring Boot + DynamoDB + Localstack (parte 2)
- Desafio: refatorando o projeto
22 - Tratando erros da nossa API
- Criando exceções personalizadas
- @ResponseStatus
- Exception Handler
- Criando mais exceções personalizadas
23 - Testes em APIs REST (Parte 1)
- O que é pirâmide de testes?
- Conceitos iniciais: Teste e fixture
- Conceitos iniciais: Test Case, Test Suite e System Under Test
- Boas práticas: Princípios FIRST
- Test Smells
- Cobertura de testes
- Testando nossa repository com @DataJpaTest
- Escrevendo testes para a repository
- Junit + Mockito: Testando a camada de serviços
- Escrevendo testes para a service
- Cobertura de testes na prática
24 - Testes em APIs REST (Parte 2)
- Testes de controller com Mock MVC x Rest Assured
- Testes de integração com Testcontainers
- TDD - Desenvolvimento guiado por testes
- Desenvolva uma API com TDD
25 - Segurança de APIs com Spring Security
- O que é Spring Security?
- Conceitos de segurança de aplicações
- Módulos do Spring Security
- API com Spring Security + basic auth + bcrypt
- Como funciona a autenticação JWT?
- O que é refresh token e para que ele serve?
- Adicionando refresh token na nossa API com Spring Security + basic auth + bcrypt
26 - Documentação e monitoramento da nossa API
- Documentação de APIs com springdoc-openapi
- Documentação com spring rest docs
- Configurando o acuator e suas principais métricas
- Prometheus: configuração e métricas personalizadas
- Criando mais métricas customizadas
27 - Programação reativa com Spring Webflux + projeto Reactor
- O que é paradigma reativo?
- O que diz o manifesto reativo?
- Reactive Streams
- RxJava
- Trabalhando com Java Util Concurrent e Java Util Stream
- Conceitos essenciais de programação reativa
- Spring Webflux
- Projeto Reactor
- Criando sua primeira aplicação com Spring Webflux
- Testes unitários com Reactor Test
28 - Consumindo APIs externas e Introdução a microsserviços
- Consumindp APIs com o Reactive Feign
- Conceitos e boas práticas de microsserviços
- Padrões de microsserviços
29 - Final
- Simulado final