Iniciar com:
-
Spring Initializr: Create a Maven Project
-
Versão 2.7.63 (era a mais versão mais antiga que tinha disponível resolvi utilizar somente para não ter problema de conflito com o entendimento das aulas)
-
Linguagem: Java
-
Input Group id for your project: br.com.project (br por causa do nosso país)
-
API (nome do projeto)
-
Tipo de empacotamento que ele vai trabalhar: Jar
-
Versão Java: 17
-
Dependências 8.1 Spring Boot DevTools (não precisa fazer restart no servidor cada vez que é modificado)
8.2 Spring Web
Tem que rodar a primeira vez para poder verificar se ele vai entrar na porta correta, geralmente ele roda dentro da porta 8080
.
#Aula 6: Leitura para mim necessária https://medium.com/@gcbrandao/diferen%C3%A7a-entre-restcontroller-e-controller-annotation-no-spring-mvc-e-rest-8533998a93eb
Não é possível assim utilizar o navegador, então baixa a extensão ThunderClient, ele tem suporte para trabalhar com o RequestBody só assim consigo enviar dados do navegador para minha API
Maven é responsável por gerenciar os pacotes do Spring Adicionado as dependências: JPA: Java Persistence API, responsável por criar a estrtura de tabelas no banco de dados, além de interagir com os objetos recebidos e enviados MySQL: Dependência responsável pela conexão entre uma aplicação Spring e o banco MySQL.
findBy() -> procurar uma informação pela sua característica (no caso os atributos). List findByCodigo(int codigo); -> para quando se tem muitos registros
Serviço? Onde ficaram as regras de negócio do projeto, quando temos uma rota não usamos diretamente uma ação do BD
- Uma regra de negócio não pode estar dentro de uma rota, não é boa prática
@Component -> resposta quando houver erro dentro da requisição quando sua aplicação estiver sendo executada, ele vai varrer/pesquisar os elementos que estiverem dentro da classe de Mensagem
Após isso em outras classes posso utilizar o @Autowired que é a NOSSA INJENÇÃO DE DEPENDENCIAS para instanciar um objeto dessa classe
Quando utilizado a injenção de dependencia, o desenvolvedor não fica mais responsável na instancia do objeto, isso fica automaticamente no Spring