Dependencies used are as follows:
3 layer Architecture : Client <--> Controller <--> Service <--> DAO <--> DB
- Controller
- Keeps all spring REST controllers
- Define end points
- Service
- all service classes that hold business logic
- DAO
- Repository layer
- keep all spring JPA data repository
- Communicates with database
- controller
- Contains all Spring MVC controllers
- entity
- Contains all JPA entities
- service
- Contains service interfaces
- service.impl
- Contains servie classes
- utils
- Contains utilities and classes
- repository
- Contains Spring Data JPA repositories. (JPA repositories are by default Transactional. Default implementation class of the JpaRepository interface is SimpleJpaRepository class)
- exception
- Contains all custom exceptions
- payload
- Contains DTOs (Data Transfer Objects) that act as a payload between client and server
OpenAPI 3 specification document for API is auto generated using springdoc-openapi-ui
As per custom path provided in application.properties, auto generated API doc is generated at custom path:
http://localhost:<port>/api-docs/
Doc can also be accessed in the Swagger UI at path:
http://localhost:<port>/swagger-ui.html