A aplicação foi elaborada utilzando padrão de arquitetura MVC (Model View Controller), sendo dividida da seguinte forma:
- Model - Mapeamento de objetos do domínio (domain)
- View - API REST (controllers)
- Controller - Centralização da lógica de negócio (service)
Foi baseada na utilização do Framework Spring, utilizando os módulos:
- Spring Boot
- Fácil configuração da aplicação
- Servidor web incorporado (Tomcat), facilitando a execução da aplicação
- Gerenciamento da maioria das versões de dependências
- Spring Framework
- Injeção de dependências e Inverção de Controle (Padrões de desenvolvimento para baixo acoplamento de módulos da aplicação)
- Geração da API REST
- Gerenciamento de transações
- Testes unitários
- Spring Data JPA
- Repositório de acesso a dados utilizando a especificação JPA
Foram desenvolvidos testes unitários para validação, testes e garantia de mudanças, prevenindo problemas e ajudando no desenvolvimento (tests)
A aplicação pode ser executada utilizando 2 bancos de dados: HSQLDB e MySQL
Quando a aplicação é executada localmente utilizando Java (java -jar), ou na execução dos testes, o banco de dados utilizado é o HSQLDB
Caso a aplicação seja executada através do docker (descrito mais abaixo), o banco de dados utilizando é o MySQL
###Empacotando o projeto: Na pasta do projeto executar:
mvn clean package
Será gerado o arquivo target/address-service.jar.
java -jar target/address-service.jar
A API ficará disponível no endereço http://localhost:8080
Para testes da API é possível acessar o endereço:
http://localhost:8080/swagger-ui.html
Também é possível executar a aplicação utilizando docker-compose.
Neste formato de execuçãom a aplicação utiliza um banco de dados MySQL, através de um container docker.
Para ambientes de desenvolvimento é necessário a instalação das ferramentas:
- Docker Machine
- Docker Compose (não disponível para Windows)
- VirtualBox
###Empacotando o projeto: Na pasta do projeto executar:
mvn clean package
docker-compose up
Após esse processos, a aplicação ficará disponível no pela url:
http://{IP_VM_DOCKER}:8080
* Para obter o ip da VM:
docker-machine ip dev
A documentação da API REST desenvolvida foi disponibilizada utilizando o Swagger
Com a aplicação executando, podemos acessar o endereço:
- Aplicação executada via Java:
http://localhost:8080/swagger-ui.html
- Aplicação executada via Docker:
http://{IP_VM_DOCKER}:8080/swagger-ui.html