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.MySQL8DialectNote: 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 databaseGera o container com a imagens atualizadas.
make buildmake downPara paralizar o container e deletar arquivos use:
make clean