В течение некоторого времени я работаю с репозиторием Data JPA в моем проекте, и я знаю следующие пункты:
- В интерфейсах репозитория мы можем добавить такие методы, как
findByCustomerNameAndPhone()
(предполагая, чтоcustomerName
иphone
- это поля в объекте домена). - Затем Spring обеспечивает реализацию путем реализации вышеупомянутых методов интерфейса репозитория во время выполнения (во время запуска приложения).
Мне интересно, как это было закодировано, и я просмотрел исходный код и API-интерфейс Spring JPA, но я не смог найти ответы на следующие вопросы:
- Как создается класс реализации репозитория во время выполнения и внедряемые и внедряемые методы?
- Использует ли Spring данные JPA использовать CGlib или любые библиотеки манипулирования байткодами для реализации методов и динамического впрыска?
Не могли бы вы помочь с вышеуказанными запросами, а также предоставить любую поддерживаемую документацию?