Projeto se trata de controle de estacionamento para um condomínio, abordando alguns conceitos de padrões de projeto como Singleton, Strategy, Facade e DTO em Java.
Para iniciar este projeto, foi utilizado o spring initializr utilizando as opções:
- IDE IntelliJ
- Projeto: Maven
- Linguagem: Java 17
- Spring Boot: 3.0.5
- Dependências: Spring Web, Spring Data JPA, Lombok, H2 Database e SpringDoc
Dependência adicionada manualmente no pom.xml: springdoc-openapi v2.1.0.
- Singleton: Padrão Criacional que permite a criação de uma única instância de uma classe e fornecer um modo para recuperá-la.
- Strategy: Padrão Comportamental com objetivo de simplificar a variação de algoritmos para a resolução de um mesmo problema.
- Facade: Padrão Estrutural que visa prover uma interface que reduza a complexidade nas integrações com subsistemas.
- DTO: Data Transfer Object (DTO) ou simplesmente Transfer Object é um padrão de projetos bastante usado em Java para o transporte de dados entre diferentes componentes de um sistema, diferentes instâncias ou processos de um sistema distribuído.
- Annotations @Autowired como padrão criacional Singleton.
- Annotations @Service e @Repository como padrão comportamental Strategy.
- Annotation @RestController como padrão estrutural Facade.
A relação entre Padrões de Projetos com Java e o spring framework pode-se ser percebida em:
- Verifica se a vaga já está em uso na hora do cadastro.
- Verifica se apartamento e bloco já existem no banco de dados.
- Verifica se o veiculo já não se encontra em outra vaga cadastrada.
git clone https://github.com/reynaldo86/Api-parking-control.git