API para controle de manutenção veicular.
- Java 17
- Maven
- Spring Boot
- Spring Data JPA
- Spring Web
- Spring Security
- Redis (for caching)
- Oracle MySQL
- H2 database (for using in tests)
- JUnit 4
- Mockito
- OpenAPI (Swagger)
- Lombok
- SL4J
- Jenkins
Para rodar o projeto, utlize a IDE que você mais se identifique (no meu caso, utilizo o IntelliJ), em seguida, altere o arquivo application.properties para que o projeto se adeque ao seu servidor de banco de dados:
Exemplo do arquivo application.properties:
## Application port
server.port=8003
server.servlet.context-path=/mycar/v1
## default connection pool
spring.datasource.hikari.connectionTimeout=20000
spring.datasource.hikari.maximumPoolSize=5
## Configurações do MySQL database
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/{nomeDoBancoDeDados}
spring.datasource.username={usuario}
spring.datasource.password={senha}
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
## Path para correção dos Beans
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
Em seguida, basta criar um banco de dados no MySql com o comando Create schema {nomeDoBancoDeDados}
Também será necessário instalar o Redis para o funcionamento do caching. O Redis é um armazenamento de estrutura de dados em memória, usado como um banco de dados em memória distribuído de chave-valor, cache e agente de mensagens, com durabilidade opcional. Ele permite baixa latência e acesso mais rápido aos dados. Comparado aos bancos de dados tradicionais, o Redis não requer acesso ao disco, tendo todos os dados armazenados em cache na memória, o que dá uma resposta mais rápida.
Para instalar o Redis no macOS: brew install redis
, e para rodar o servidor: brew services start redis
Para limpar os resultados de testes anteriores, utilize o comando: mvn clean
Para rodar os testes unitários, utilize o seguinte comando: mvn test
Neste projeto, no diretório devops, existe um arquivo jenkinsfile que contém toda a configuração necessária para rodar uma esteira de testes unitários automatizados no Jenkins.
Para gerar um arquivo java executável, utilize o seguinte comando: mvn package