I've used Spring Data Repository for basic CRUD operations on multiple data stores(relational databases, mongodb and elasticsearch). As per my understanding, it doesn't require the user to provide an implementation of the Repository and it works like a charm.
How does Spring Data generate the actual implementation of the Repository? At what phase it is done and how it is done?
I am asking this in order to generate implementation classes for my custom interfaces using the same approach.