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.