- Passo a passo da construção do projeto de um sistema de pedidos para fixação.
- Todo o backend disponível.
- Aplicação do Cliente (IONIC)
- Controladores REST (Resources)
- Camada de Serviço (Services)
- Camada de acesso a dados (Repository)
- Camada de dominio (Domain)
- Gerar o projeto spring no STS do spring.
- Criar um repositório na pasta onde está seu projeto local.
- Criar um repositório no GitHub.
- Configurar o github com o seu repositório.
- Crie um serviço REST com o nome de CategoriaResource com o pacote com.cursomc.resources.
- Insira a anotação @RestController que indicará que essa classe é um serviço REST.
- Insira a anotação @RequestMapping com o valor /categorias que irá apontar o nome que deve ser usado na URL para consultar o serviço.
- Crie um metodo do tipo String com o nome listar().
- Em cima do metodo listar() insira a anotação @RequestMapping com o method GET indicando que é um metodo para trazer alguma coisa.
- Retorne uma String "Funcionando".
- Rode seu programa e acesse o localhost:8080/categorias.
- Acesse o postman ou outro serviço REST que você usa e acesse o mesmo link.
- Crie uma classe de dominio chamada Categoria com o pacote com.cursomc.domain.
- Na classe de dominio crie as variaveis: id e nome.
- Implemente na classe de dominio o Serializable e gere sua variável padrão faltante.
- Gere o construtor vazio.
- Gere o construtor passando seus parametros.
- Gere o hashcode() e equals() apenas com o id.
- Na classe CategoriaResource no metodo listar() modifique o tipo para List Categoria.
- Crie dois objetos do tipo Categoria e instancie como um novo objeto com o id e nome.
- Crie uma Lista do tipo Categoria e inicie como ArrayList().
- Adicione os objetos na lista.
- Retorne a lista.
- Rode seu projeto e abra o navegador na URL localhost:8080/categorias.
- Acesse o postman ou outro serviço REST que você use e acesse o link localhost:8080/categorias.
- Adicione no pom.xml as dependências necessárias.
- Acesse a classe de dominio Categoria adicione a anotação @Entity na classe, para identifica-lo como uma entidade relacional.
- No id insira a anotação @Id e logo a baixo insira a anotação @GeneratedValue(strategy=GenerationType) e escolha o .IDENTITY.
- Dentro da pasta resources acesse o arquivo application.properties.
- Insira as linhas:
- spring.h2.console.enabled=true
- spring.h2.console.path=/h2-console
- spring.datasource.url=jdbc:h2:mem:cursomc
- spring.datasource.username=sa
- spring.datasource.password=
- spring.datasource.driver-class-name=org.h2.Driver
- spring.jpa.show-sql=true
- spring.jpa.properties.hibernate.format_sql=true
- Rode seu programa e acesse o link localhost:8080/h2-console e acesse o banco com os dados e você irá verificar a criação da tabela Categoria.
- Crie uma interface de nome CategoriaRepository com o pacote com.cursomc.repositories insira uma anotação com o nome @Repository e extenda ela para JpaRepository e passe Categoria, Integer.
- Crie uma classe de nome CategoriaService com o pacote com.cursomc.services insira uma anotação com o nome @Service,
- Nessa classe crie uma variável do tipo CategoriaRepository com nome repo e insira a anotação @Autowired.
- Crie um metodo com nome buscar() passando como parâmetro o id do tipo Integer o metodo deve ser do tipo Categoria.
- Dentro dele voce irá criar um objeto do tipo Optional de categoria recebendo repo.findById(id)
- Retorne o obj.orElse(null).
- Em CategoriaResource acrescente o value no @RequestMapping para "/{id}".
- Altere o tipo e o nome do metodo para ResponseEntity<?> e find(@PathVariable Integer id).
- Crie uma variavel do tipo CategoriaService com a anotação @Autowired.
- Delete todo o corpo do metodo.
- Crie um objeto do tipo categoria recebendo service.buscar(id)
- Retorne um ResponseEntity.ok().body(obj), passando o objeto em obj.
- Na classe principal da aplicação implemente CommandLineRunner e o metodo que irá faltar.
- Nessa classe crie uma variável do tipo CategoriaRepository com nome repo e insira a anotação @Autowired.
- Dentro do novo metodo crie dois objetos do tipo Categoria.
- e usando o categoriaRepository dê um saveAll(Arrays.asList(cat1, cat2)).
- Crie uma classe de dominio Produto, com os atributos: id, nome e preco, pacote com.cursomc.domain.
- Gere o Serializable e sua váriavel e insira a anotação @Entity na classe.
- Gere os Getters and Seters e o hashcode() e equals() somente por id.
- Crie a interface ProdutoRepository e extenda de JpaRepository<Produto, Integer> como pacote: com.cursomc.repositories.
- Na classe de dominio Categoria crie uma lista do tipo Produto, insira a anotação @ManyToMany(mappedBy="categorias").
- Na classe de dominio Produto crie uma lista do tipo Categoria e insira a anotação @ManyToMany(name="PRODUTO_CATEGORIA", joinColumns = @JoinColumn(name = "produto_id"), inverseJoinColumns = @JoinColumn(name = "categoria_id")) e insira seus Getters and Seters.
- Pro fim, na classe principal da aplicação, crie uma variável do tipo ProdutoRepository e insira a anotação @Auowired.
- Crie 3 objetos do tipo Produto passando null no id.
- Defina os produtos de cada categoria.
- Defina as categorias de cada produto.
- Efetue um saveAll(Arrays.asList(p1,p2,p3)) no ProdutoRepository.