https://github.com/sancruz-dev/javaweb-springboot
Projeto de estudo sobre Spring Boot. Créditos à escola DevSuperior, criadora do conteúdo.
https://github.com/sancruz-dev/javaweb-springboot
Last synced: 3 months ago
JSON representation
Projeto de estudo sobre Spring Boot. Créditos à escola DevSuperior, criadora do conteúdo.
- Host: GitHub
- URL: https://github.com/sancruz-dev/javaweb-springboot
- Owner: sancruz-dev
- Created: 2022-01-11T23:58:47.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-01-12T03:55:46.000Z (over 3 years ago)
- Last Synced: 2025-01-12T15:11:58.520Z (5 months ago)
- Language: Java
- Size: 123 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#  Seu primeiro projeto Java Web no Spring Boot 2022
> Veja como é simples construir uma API REST com banco de dados usando Java e Spring Boot## Realização
[DevSuperior - Escola de programação](https://devsuperior.com.br)[](https://instagram.com/devsuperior.ig)
[](https://youtube.com/devsuperior)### Pré-requisitos
- Lógica de programação (qualquer linguagem)
- Programação orientada a objetos (qualquer linguagem)
- Ferramentas
- Spring Tool Suite (STS)
- Postman### Objetivos da aula
- Resgatar fundamentos de programação
- Colocar em prática esses fundamentos
- Criar um pequeno sistema com ferramentas e práticas de mercado
- Dar mais um passo em direção à preparação para o mercado### Visão geral do sistema
Vamos construir um pequeno sistema (API REST) de usuários e departamentos, com os seguintes casos de uso:
- Buscar todos usuários
- Buscar um usuário pelo seu id
- Inserir um novo usuário
### Desenvolvimento moderno: relacional -> objeto -> json

### Passos da aula
- Criar o projeto
- Implementar o modelo de domínio
- Mapeamento objeto-relacional com JPA
- Configurar o banco de dados H2
- Criar os endpoints da API REST### Configuração Inicial com [Spring Initializr](https://start.spring.io/)

### Trechos de código para copiar
#### Configuração do Maven Resources Plugin
###### Correção de versionamento do Maven: no arquivo pom.xml, inserir entre `` o código abaixo.```xml
org.apache.maven.plugins
maven-resources-plugin
3.1.0```
###### OBS: Após isso, clicar com o botão direito na pasta principal contendo o [boot] > Maven > Udate Projects... > marcar caixa "force Update of Snapshots" > OK.
#### Configurações do banco de dados
```
# Dados de conexão com o banco H2
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=# Configuração do cliente web do banco H2
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console# Configuração para mostrar o SQL no console
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
```#### Script SQL
```sql
INSERT INTO tb_department(name) VALUES ('Gestão');
INSERT INTO tb_department(name) VALUES ('Informática');INSERT INTO tb_user(department_id, name, email) VALUES (1, 'Maria', '[email protected]');
INSERT INTO tb_user(department_id, name, email) VALUES (1, 'Bob', '[email protected]');
INSERT INTO tb_user(department_id, name, email) VALUES (2, 'Alex', '[email protected]');
INSERT INTO tb_user(department_id, name, email) VALUES (2, 'Ana', '[email protected]');
```##
______ ANOTAÇÕES PESSOAIS DA AULA ______
![]()
- É possível criar o projeto através do navegador entrando no link: https://start.spring.io/
E depois de gerar o zip, é preciso importar para dentro no STS: abrir a aba 'Maven' e selecionar 'Existing Maven Projects', e em seguida selecionar a pasta do projeto onde tem o src, .mvn e outros... A partir disso já é pra aparecer o arquivo pom.xml (configuration file of Maven), que já é um sinal de sucesso, depois em finish.- type Maven Project (gerenciador de dependências): app que baixa da internet todas libs dependentes que o projeto precisar.
- O nome do grupo que faz parte dos metadados do projeto, tem o nome de caminho invertido para ser um caminho único, como "com.devsuperior".
- @SpringBootApplication: é uma anotation que vai fazer um pré-processamento na classe antes cde compilar transformando-a em um projeto spring boot. (O Framework Spring faz muito use de 'anotations' pra deixar o código mais limpo).
- ctrl + shift + f = identar no STS.
- ORM (Mapeamento objeto-relacional): Processo de conversão do modelo relacional num modelo de objetos. Portanto, JPA é uma ferramenta ORM que agiliza todo esse processo, para que ele não seja "feito na mão".
- As configurações do BD vão dentro de application.properties na pasta resoucers.
- UserRepository tem como função no projeto, de buscar, salvar, deletar atualizar os dados do usuario com o endpoints.
- Controlador REST: Objeto responsável por receber as requisições do usuários, e repondê-las.
- Mecanismo de injeção de independência: agiliza o uso de isntanciação de composição de componentes.
- findById: retorna um 'optional' (objeto especial do java), e dentro do objeto é que está o que está sendo buscado.
- Na requisição POST coloca-se o corpo na URL com o objeto que será salvado/inserido.
- Para consultar o BD do projeto: http://localhost:8080/h2-console
- Para consultar os dados da tabela de usuarios: http://localhost:8080/users