Escolar Documentos
Profissional Documentos
Cultura Documentos
**MICROSERVIÇOS: é uma espécie de máquina virtual que já vem com uma série de
coisas dentro. Uma dessas coisas é o tomcat configurado. Dessa maneira, toda vez
que executarmos a aplicação, ele levanta um servidor tomcat(não precisa ter o
tomcat instalado na máquina) e já lança o nosso arquivo na pasta certa e já sai
tudo funcionando.
-->Se quisermos pegar o web service de uma máquina e levar para outra e executar, é
só colocar java-c e o nome do pacote e o springboot já levanta o tomcat e sai tudo
funcionando.
---> As classes ficam na pasta(arquivo) Java e aqui dentro temos que colocar nossas
packages. Criar packages é uma forma de otimizar a arquitetura do projeto para não
misturar as resposabilidades de cada coisa. Os pacotes que criamos são: model,
repository e controller.
=>MODEL: onde colocamos todos os POJOS do banco de dados.
=>REPOSITORY: O padrão de projetos DAO está presente nesse conceito de web services
também. Aqui colocamos todos os comando JPQL para acessar o banco de dados.
Normalmente criamos uma pasta DAO, mas, no Springboot usamos uma coisa mais
simples(com muitas coisas prontas), uma pasta chamada Repository.
--->O springboot tem uma classe repository com várias coisas implementadas, como o
CRUD. Geralmente no DAO temos que fazer essas ações todas a mão, mas no springboot
não, pois ele usa SpringData.
**SPRINGDATA: uma biblioteca do spring responsável por fazer mapeamento de objeto
relacional(acesso e ligação com banco).Os comandos que tinhamos no JPQL para buscar
as coisas não precisamos mais fazer, a não ser que seja uma busca fora do padrão,
como buscar um usuário pelo nome. Consultas como buscar por id, buscar todos,
listar todos, apagar todos e etc, já vem inclusos no springboot.
=>CONTROLLER: Existe o modelo MVC(model,view e controller) onde temos a model que é
o banco de dados, a view que é a tela e controller que liga os dois. NO springboot
não temos a view(tela), ou seja, só temos o controller e a model.
**WEB SERVICE: Nada mais é que uma classe java que vai receber um conjunto de
informações do cliente, vai processar tendo que buscar do banco, inserindo algo no
banco ou outra coisa e devolvendo uma resposta. A função do web service nada mais é
que um controlador dentro desse modelo.
$$ESTRUTURA DE DIRETÓRIOS $$
Temos dois arquivos que são os principais(main do java) e junto com eles a mesma
estrutura de pastas. Dentro de java resources encontramos a pasta src/main/java que
possui o pacote do nosso projeto. Dentro deles temos duas classes: Application.java
e ServletInitializer.java
package com.aula4k.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Pessoa implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L; // quando serializamos nós
pegamos essa classe e transformamos ela em uma sequência de bytes para poder mandar
o arquivo nessa sequência para depois ser serializado, ou seja, pegar o arquivo de
bytes e transformar na classe de novo. Cada arquivo que mandamos tem que ter um id,
por esse motivo ele tem que ter esse serialversion, para que ele tenha um id
diferente para saber a versão dessa serialização.
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String nome;
public Integer getId() {
return id;
}
public void setId(Integer id) {
id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Pessoa() {
super();
}
criando pessoarepository:
package com.aula4k.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.aula4k.model.Pessoa;
** Caso queiramos criar algum método de busca mais elaborado, é aqui que iremos
criar o nome do método, pois a maioria das coisas já é implementada, então, pelo
nome ele já sabe o que tem que fazer. Ex: findbynome ele sabe que tem que fazer um
select nome from pessoa where nome="alguma coisa".
criando pessoacontroller:
package com.aula4k.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.aula4k.repository.PessoaRepository;
@Controller // a primeira coisa que temos para fazer é dizer para o string que essa
classe é um controlador, para fazer isso, usamos a anotação @Controller.
@RequestMapping(path="") // como falamos antes, nós temos o protocolo, o endereço
host do servidor e o caminho das pastas que vão passeando para acessar o web
service. Aqui temos que dizer para o web service qual o caminho dele, para isso,
usamos essa anotação. Nós queremos botar ele para quando colocarmos o endereço, ele
já entrar dentro do endereço. Nos próximos passos colocaremos qual web service ele
deve acessar.
public class PessoaController {
---> Auto acoplamento é quando temos dependência entre duas coisas, a minha depende
da outra existir. Baixo acomplamento é quando a minha não depende da outra. A
injeção de dependência faz justamente isso, quebra o acoplamento.
public bucarTodasPessoas;