Untitled

mail@pastecode.io avatar
unknown
text
2 years ago
3.1 kB
8
Indexable
Classe Controller ->
	* É a classe que a gente faz a comunicação com quem chama nossa aplicação (ex: front)
	* E a classe que criamos ENDPOINTS (pontos que tem as rotas mapeadas para acesso do front)
	* Recebe a anotação @Controller que indica para o Spring que se trata de um controller
	* @ResponseBody -> Indica que seu endpoint (metodo com rota), tem um retorno para fora do Java (para o front)
	* @RequestMapping -> Que indica a rota para acessar a classe (localhost:8080/rotaDaClasse/rotaDoEndpoint)
	* @GetMapping (ou PostMapping, ou PutMapping ou DeleteMapping) -> Mapeia a rota do endpoint e define o metodo REST como GET, POST PUT ou DELETE
Classe Service ->
	* @Service para indicar para spring que se trata de uma service
	* É a classe responsável por ter nossa regra de negócio
	* É aqui que nosso código principal fica, ela quem converte objetos, chama o banco de dados, chama o que o codigo precisar
Interface Repository ->
	* É a interface que comunica com o banco de dados
	* @Repository para falar para spring que se trata de um repository
	* Para nao precisarmos criar o codigo que vai no banco de dados, extendemos a JpaRepository, passando a entity e o tipo de dado da primary key, assim o spring cria para gente o codigo de ir no banco de dados

Entity ->
	* É um objeto para comunicar com o banco de dados, ele representa uma tabela do seu banco
	* @Entity para falar para o spring que se trata de uma entity
	* @Table para falar para o spring, qual tabela se refere
	* @Id para falar para o spring, qual campo dessa tabela, é a primary key do banco de dados
	* @GeneratedValuye para falar para o spring se a primary key, e auto gerado (Ex: id 1, 2, 3, 4 ,5)
	* @Column para falar para o spring, qual a coluna do banco de dados, a variavel representa (so usamos caso os nomes nao seja correspondentes)

DTO ->
	* É um objeto simples
	* É utilizado para comunicar com o front-end e trafegado entre a classe controler e service

Funcionamento do salvar->
	1 - Classe Contrler recebe a requisicao do front-ent (DTO marcado com @RequestBody)
	2 - Controller chama a Service passando o DTO(@Autowired para injetar a service dentro da controller)
 	3 - Service recebe a requisição do controller e converte o DTO em ENTITY
	4 - Service chama a repository, passando a entity (@Autowired para injetar o repository na service)
	5 - Repository chama o banco de dados e salva (Spring que cria o codigo atraves das anotacoes)
	6 - Service recebe o objeto salvo (entity), converte para DTO
	7 - Service retorna o DTO para controller
	8 - Controller retorna o DTO para o front

Funcionamento do buscar->
	1 - Controller recebe a requisicao do front-end e o ID do item buscado (@RequestParam)
	2 - Controller chama a Service passando o ID (@Autowired para injetar a service dentro da controller)
	3 - Service recebe a requisição do controller e busca na repository o findById
	4 - Service recebe o retorno da repository (entity) e converte para DTO
	5 - Service retorna para Controller o DTO
	6 - Controller retorna para front o DTO (@ReponseBody)