Spring Boot 3 | Curso Completo 2023

Spring Boot 3 | Curso Completo 2023

Anotações de Spring Framework

Visão geral da seção: Nesta seção, o palestrante fala sobre como usar os estereótipos do Spring Framework para gerenciar classes e endpoints.

Uso de estereótipos do Spring Framework

  • O uso de estereótipos torna a classe mais sugestiva.
  • A anotação @repository é usada para tornar explícito que uma classe será gerenciada pelo Spring.
  • A anotação @controller ou @restController é usada para implementar uma API RESTful.

Preparando o controlador

Visão geral da seção: Nesta seção, o palestrante fala sobre como criar um controlador e inicializá-lo corretamente.

Criação do controlador

  • Um novo pacote chamado "controllers" é criado.
  • Uma nova classe Java chamada "Product Controller" é criada dentro do pacote "controllers".

Inicialização do controlador

  • O controlador deve ser inicializado corretamente usando um dos estereótipos do Spring Framework, como @controller ou @restController.
  • Um ponto de injeção Repository Product também deve ser criado no controlador para acessar todos os métodos JPA quando necessário.

Implementação dos métodos CRUD

Visão geral da seção: Nesta seção, o palestrante fala sobre a implementação dos métodos CRUD no controlador.

Implementação dos métodos CRUD

  • Os métodos CRUD são implementados para salvar, ler, listar, excluir e atualizar um produto.
  • O primeiro método a ser implementado é o POST para receber um recurso, realizar uma validação inicial e salvá-lo no banco de dados.

Criação do DTO

  • Um DTO (Data Transfer Object) é criado para receber os valores enviados pelo cliente e adicioná-los ao banco de dados.
  • O DTO é criado usando a nova palavra reservada "record" do Java 16.

Conclusão

Visão geral da seção: Nesta seção, o palestrante conclui sua apresentação.

Conclusão

  • O palestrante anuncia que acabou de lançar a quarta edição gratuita do ebook Extreme Boot Data e Web aos Microservices.
  • Ele também menciona que não precisamos nos preocupar com a IDE porque ela será gerada automaticamente.
  • O vídeo termina com o palestrante explicando que o cliente enviará o nome e valor do produto para serem salvos no banco de dados.

Desculpe, mas não recebi o arquivo de transcrição para criar as notas. Por favor, envie o arquivo de transcrição para que eu possa começar a trabalhar nas notas.

Método GET

Visão geral da seção: Nesta seção, o palestrante fala sobre a implementação do método GET para ler recursos.

Implementação do Método GET

  • O método GET é usado para ler recursos.
  • A URL chamada é composta por "/produtos/" e o índice que é o ID do produto que deseja-se visualizar.
  • O retorno será uma resposta com status HTTP 200 OK e uma lista de todos os recursos salvos no banco de dados.
  • Para obter um recurso específico, usa-se a anotação @PathVariable para obter o ID passado na URI.
  • Se não houver retorno da base, a resposta terá status HTTP 404 Not Found e uma mensagem informando que o produto não foi encontrado.

Método GET para um único recurso

Visão geral da seção: Nesta seção, o palestrante fala sobre a implementação do método GET para ler um único recurso.

Implementação do Método GET para um Único Recurso

  • O método GET é usado para ler um único recurso.
  • A URL chamada é composta por "/produtos/" e o índice que é o ID do produto que deseja-se visualizar.
  • Usa-se a anotação @PathVariable para obter o ID passado na URI.
  • Se não houver retorno da base, a resposta terá status HTTP 404 Not Found e uma mensagem informando que o produto não foi encontrado.

Introdução

Visão geral da seção: Nesta seção, o palestrante apresenta a estrutura do projeto e as dependências utilizadas.

Estrutura do Projeto

  • O arquivo XML contém todas as dependências e configurações de versões do projeto.
  • A pasta "sources" contém o arquivo Application Properties para definir configurações de bases de dados.
  • A pasta "source/main/java" contém a classe principal da aplicação com a anotação @SpringBootApplication.

Dependências Utilizadas

  • O projeto utiliza o Java 17.
  • As dependências incluem logs, Spring Boot Starter, Spring Framework (nas versões 6.0 ponto nove), entre outras.

Configurando a Conexão com Banco de Dados

Visão geral da seção: Nesta seção, o palestrante mostra como configurar a conexão com banco de dados.

Configurando a Conexão

  • É necessário fazer uma conexão com banco de dados antes de continuar com a implementação da API RESTful.
  • O palestrante utiliza o pgAdmin como interface para ter acesso às bases de dados criadas.

Implementando um GET Point na API RESTful

Visão geral da seção: Nesta seção, o palestrante implementa um GET point na API RESTful.

Implementando um GET Point

  • Para passar o produto, é necessário utilizar o status 200 na resposta.
  • É preciso usar o GET point para retornar o modelo do produto ao cliente.
  • O projeto utiliza uma base opcional, que inclui quatro ou cinco dependências selecionadas.
  • Ao baixar o Spring Boot, muitas outras dependências são baixadas automaticamente.
  • O GET point e a implementação do produto estão prontos.

Conclusão

Visão geral da seção: Nesta seção, o palestrante conclui a apresentação.

Configurando a conexão com o banco de dados

Visão geral da seção: Nesta seção, o palestrante explica como configurar a conexão com o banco de dados.

Configurando as credenciais de autenticação

  • É necessário definir as credenciais para que a aplicação possa se conectar à base de dados.
  • As credenciais incluem nome de usuário e senha, que são definidos durante a instalação do PostgreSQL na máquina.
  • O nome de usuário e senha devem ser passados ​​para que a aplicação possa se autenticar e estabelecer uma conexão bem-sucedida com a base de dados.

Mapeamento dos atributos do modelo

  • Para mapear os atributos do modelo em cada coluna da tabela no banco de dados, é necessário criar uma entidade para cada recurso.
  • O Hibernate DDL auto update é usado para criar tabelas automaticamente na base de dados quando um recurso é criado pela primeira vez.

Conectando-se à base de dados local

Visão geral da seção: Nesta seção, o palestrante explica como conectar-se à base de dados local.

Verificando a existência do recurso na base de dados

  • É necessário verificar se o recurso realmente existe na base de dados antes que ele possa ser atualizado ou excluído.
  • Se o recurso não existir na base de dados, será retornado um erro de "Solicitação inválida".

Atualizando os valores do recurso

  • Os valores do recurso podem ser atualizados usando o método PUT.
  • O método DELETE é usado para excluir um recurso da base de dados.

Conclusão e melhorias futuras

Visão geral da seção: Nesta seção, o palestrante conclui a apresentação e discute possíveis melhorias futuras.

Melhorias futuras

  • Possíveis melhorias futuras incluem adicionar regras e chaves à base de dados.

Adicionando uma camada de serviço

Visão geral da seção: Nesta seção, o palestrante fala sobre a adição de uma camada de serviço para o projeto.

Adicionando a camada de serviço

  • O palestrante menciona a adição de uma camada de serviço para o projeto.
  • Ele também menciona que irá adicionar um mês para download necessário.
  • O modelo do produto terá três atributos: um ID, um nome e um valor.
  • O mês já foi baixado e agora eles serão capazes de usar o ID do produto, nome e valor.
  • Todos os imports necessários são feitos antes de prosseguir com a implementação da camada de serviço.

Implementando identificadores distribuídos

Visão geral da seção: Nesta seção, o palestrante fala sobre como implementar identificadores distribuídos no projeto.

Usando Generated Value

  • Para implementar identificadores distribuídos, é necessário utilizar a anotação @ID e @GeneratedValue.
  • A anotação @ID permite demonstrar o nosso identificador único que é o IDI dessa classe que será usado como ID da tabela.
  • A anotação @GeneratedValue define como os identificadores serão gerados. No caso, foi utilizado Generic Generation Type auto para evitar conflitos na base de dados por Microservices.

Usando Presentation Model

  • A classe Presentation Model é utilizada para criar links de navegação.
  • Para implementar a navegabilidade, são utilizados métodos da classe Presentation Model que permitem criar esses links.
  • Esses identificadores distribuídos são muito recomendados para arquiteturas distribuídas, como a arquitetura de Microservices.

Adicionando atributos

  • Além dos atributos nome e valor, há um quarto atributo chamado links que será usado para criar os links de navegação.

Classes de Serviços

Visão geral da seção: Nesta seção, o palestrante fala sobre classes de serviços e como elas envolvem regras de negócio.

Classes de Serviços

  • As classes de serviços redirecionam o cliente para os detalhes do produto.
  • Elas envolvem regras de negócio.

Upload da Aplicação com Nova Mudança

Visão geral da seção: Nesta seção, o palestrante fala sobre como fazer upload da aplicação com uma nova mudança e mostra exemplos usando a notação @service.

Upload da Aplicação com Nova Mudança

  • É possível utilizar a notação @service para mostrar ao Spring.
  • Ao enviar a solicitação, é necessário especificar que ela será do tipo service gerenciado pelo Spring.
  • Também é possível usar a anotação @repository para mostrar ao Spring que é um estereótipo específico.
  • A interface pode ser gerenciada pelo Spring e ter transações com base em dados.

Atributos Adicionais das Classes

Visão geral da seção: Nesta seção, o palestrante fala sobre atributos adicionais das classes e como eles podem ser usados no Spring.

Atributos Adicionais das Classes

  • As classes podem ter mais atributos que links.
  • É possível usar a anotação @controller para mostrar ao Spring que é um estereótipo específico.
  • O link pode ser usado para navegar até a lista completa dos recursos (produtos).

API RESTful

Visão geral da seção: Nesta seção, o palestrante fala sobre a API RESTful e como ela é baseada nas restrições de arquitetura REST.

API RESTful

  • A API RESTful é baseada nas restrições de arquitetura REST.
  • É possível utilizar diferentes estereótipos para cada caso.

Dicas e Sugestões

Visão geral da seção: Nesta seção, o palestrante dá algumas dicas e sugestões para melhorar a API.

Dicas e Sugestões

  • Para deixar explícito que uma interface é um Bean gerenciado pelo Spring, pode-se usar a notação @repository.
  • É possível criar pontos de injeção onde necessário sem declarar essa anotação estereotipada do Spring.
  • Inclua paginação nos métodos para melhorar a API.
  • Também é possível incluir filtros para tornar a listagem mais dinâmica.

Conceitos do Spring

Visão geral da seção: Nesta seção, o palestrante fala sobre os conceitos do Spring, incluindo o Spring Boot e o Spring Framework Binding.

Conceitos do Spring

  • O livro eletrônico gratuito contém informações detalhadas sobre os conceitos do Spring, incluindo o Spring Boot e o Spring Framework Binding.
  • O vídeo também fornece informações adicionais sobre esses conceitos.

Introdução

Visão geral da seção: Nesta seção, o palestrante introduz o tema do vídeo e apresenta a si mesmo.

O que é arquitetura de software?

Visão geral da seção: Nesta seção, o palestrante explica o que é arquitetura de software.

Definição de Arquitetura de Software

  • A arquitetura de software é a estrutura fundamental do sistema.
  • É uma representação das partes principais do sistema e como elas se relacionam entre si.
  • A arquitetura define as decisões importantes sobre o design do sistema.

Importância da Arquitetura de Software

  • A arquitetura afeta diretamente a qualidade do software.
  • Uma boa arquitetura permite que o software seja facilmente mantido e evoluído ao longo do tempo.
  • Uma má arquitetura pode levar a problemas como dificuldade em adicionar novos recursos ou correções de bugs.

Princípios da Arquitetura Orientada a Serviços (SOA)

Visão geral da seção: Nesta seção, o palestrante discute os princípios básicos da SOA.

O que é SOA?

  • SOA significa Arquitetura Orientada a Serviços.
  • É uma abordagem para projetar sistemas de software que consistem em serviços independentes.

Princípios da SOA

  • Os serviços devem ser autônomos.
  • Os serviços devem ser independentes de plataforma e linguagem.
  • Os serviços devem ser descobríveis por meio de um registro centralizado.
  • Os serviços devem ser reutilizáveis.

Níveis de Maturidade da Arquitetura Orientada a Serviços (SOA)

Visão geral da seção: Nesta seção, o palestrante discute os diferentes níveis de maturidade da SOA.

Nível 1: Inicial

  • Não há padronização na organização.
  • A arquitetura é ad hoc e não documentada.

Nível 2: Gerenciado

  • As melhores práticas são definidas e documentadas.
  • A arquitetura é gerenciada por uma equipe dedicada.

Nível 3: Padronizado

  • As melhores práticas são amplamente adotadas pela organização.
  • A arquitetura é padronizada em toda a organização.

Nível 4: Medido

  • O desempenho da arquitetura é medido regularmente.
  • As métricas são usadas para melhorar a arquitetura.

Nível 5: Otimizado

  • A arquitetura é continuamente otimizada com base nas métricas.
  • A organização está sempre procurando maneiras de melhorar a arquitetura.

Transforme qualquer vídeo em um resumo como este

Vídeos do YouTube, reuniões, aulas. Com transcrição, busca e chat.

Video description

Semana Decoder - Evento GRATUITO de 23 a 26 de Outubro para você aprender Arquitetura de Microservices Java com Spring. Inscreva-se pelo link: https://www.decoderproject.com/inscricao-semana-decoder E-book Gratuito Spring Boot da API REST aos Microservices: https://www.michellibrito.com/ Instagram: https://www.instagram.com/brito_michelli Spring Boot 3 | Curso Completo 2023 é um vídeo com 2 horas de conteúdo, onde vamos juntos construir uma API RESTful completa utilizando as novas versões do Spring Boot 3, Spring Framework 6 e Java 17 e seguindo o Modelo de Maturidade de Richardson. Projeto no Github: https://github.com/MichelliBrito/springboot-api-ebook Índice do vídeo: 00:00 Introdução 01:47 Ecossistema Spring 07:54 Spring Boot 3 11:24 Apresentação do Projeto: Products API RESTful 15:46 Iniciando o projeto Spring Boot no Initializr 24:32 Estrutura inicial do projeto Spring Boot 29:24 Conexão com a base de dados Postgres 35:58 Model e mapeamento da entidade Product 47:37 Criação do Repository com JpaRepository 52:32 Criação do Controller 56:15 Mapeando o DTO de entrada com Records 01:00:02 Método POST 01:14:09 Métodos GET (getAll e getOne) 01:21:58 Método PUT 01:29:00 Método DELETE 01:32:59 Inserindo HATEOAS e criação de hipermídias 01:46:42 Sugestão de estudos e continuidade 01:47:28 Final Preparação Ambiente: - JDK 17 - Maven - Postman - PgAdmin (Postgres) - IDE (IntelliJ, STS, Eclipse, etc) Vídeos Recomendados: Records em Java: https://youtu.be/lmzpyCNyziI Spring Boot | 2022: https://youtu.be/LXRU-Z36GEU Spring Boot Annotations: https://youtu.be/Pd5tr483No0 #springboot #java #michellibrito #springboot3 #jdk #api #apirest #springframework

Spring Boot 3 | Curso Completo 2023 | YouTube Video Summary | Video Highlight