Códigos ensinados no evento mergulho java da Algaworks
Link da especificação da API
Recurso | Projeto original | v0.1.0 |
---|---|---|
Banco de dados | H2* | MySQL |
Docker compose para MySQL | ❌️ | ✅️ |
Docker compose para MYSQL e backend | ❌️ | ✅️ |
Makefile para docker-compose | ❌️ | ✅️ |
Método HTTP DELETE | ❌️ | ✅️ |
* H2 é um banco de dados em memória RAM.
Classe Funcionario
Substitui os métodos getters
, setters
pelas respectivas anotações @Getter
e @Setter
Substitui os métodos equals
, hashCode
pela anotação @EqualsAndHashCode
.
Estes métodos são fundamentais para comparar objetos da mesma classe
Novidades: Agora é possível levantar as imagens docker com o comando make
- Instalar docker
- Instalar docker-compose
- Instalar make
- Configurar o arquivo .env
- Executar o projeto
Note: .env é um arquivo de variáveis de ambiente (consta no .gitignore) Substitua password pela respectiva senha do banco de dados.
MYSQLDB_USER=root
MYSQLDB_ROOT_PASSWORD=password
MYSQLDB_DATABASE=rhapi_db
MYSQLDB_LOCAL_PORT=3307
MYSQLDB_DOCKER_PORT=3306
SPRING_LOCAL_PORT=8080
SPRING_DOCKER_PORT=8080
O arquivo compose.yaml configura dois serviços.
- mysqldb (configura o banco de dados)
- app (executa a aplicação spring boot)
environment:
SPRING_APPLICATION_JSON: '{
"spring.datasource.url" : "jdbc:mysql://mysqldb:$MYSQLDB_DOCKER_PORT/$MYSQLDB_DATABASE?useSSL=false&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true",
"spring.datasource.username" : "$MYSQLDB_USER",
"spring.datasource.password" : "$MYSQLDB_ROOT_PASSWORD"
}'
Este projeto utiliza a imagem mysql:latest
Foram aplicadas configurações especificas em application.properties
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
Note: Estes comandos devem ser executados na pasta raíz do repositório.
Isto levantará um container com mysql e outro executando a aplicação spring
make
Note: será executado o container configurado em docker-compose.yml
Dica: crie um link-simbólico de .env na pasta rh-api
ln -s $PWD/.env ./rh-api/.env
make database
Gera o container com a imagens atualizadas.
make build
make down
Para paralizar o container e deletar arquivos use:
make clean