Spring Data
When an application requires interaction with a database, that often means implementing a considerable amount of boilerplate code which, over time, becomes difficult to maintain.
Spring data eliminates boilerplate code and abstracts database interactions into a common repository Application Programming Interface (API) which means better functionality with less code.
The Spring Data project makes it a mission to :
“provide a familiar and consistent, Spring-based programming model for data access while still retaining the special traits of the underlying data store.”
Citation from https://spring.io/projects/spring-data
Spring Data is an umbrella project consisting of several specialized projects for various data stores as well as Spring Data Commons, a project that considers the commonality of data store access between the projects.
Spring Data commons abstracts common functionality from any particular data source/store such as converting java data entities into data records and persisting them to a database as well as converting the data records back into entities for CRUD operations required.
Repository Interfaces
The Repository pattern is an abstraction that is used by Spring Data Commons to implement Java repository interfaces for common functionality such as :
- JPARepository
- CRUD operations (CrudRepository)
- Pagination and sorting abstraction (PagingAndSortingRepository)


