У нас есть базовый класс репозитория JPA с некоторыми дополнительными утилитами, которые мы используем в наших проектах. После Spring Документация JPA данных > мы создали класс и использовали аннотацию @EnableJpaRepositories в классе конфигурации, как в следующем примере:
@Configuration
@EnableJpaRepositories(basePackageClasses = MyApplication.class,
repositoryBaseClass = MyJpaRepositoryImpl.class)
public class SpringDataJpaMyRepositoryConfiguration {
}
Мы также устанавливаем атрибут basePackageClasses, чтобы наши репозитории были найдены, так как класс конфигурации не находится в корневом пакете приложения. Все работает так, как ожидалось, поэтому проблем пока нет.
Теперь мы хотели бы создать стартер загрузки spring, чтобы добавить базовый класс репозитория к нашим проектам без дальнейшей настройки, но мы не знаем, как это сделать. Если мы создадим класс AutoConfiguration с параметром аннотации EnableJpaRepositories, атрибутом repositoryBaseClass, стратегия поиска в автоматическом репозитории, которая ищет репозитории в классе, аннотированном с помощью @SpringBootApplication, больше не работает.
И мы не можем использовать атрибут basePackageClasses, поскольку мы не знаем основной класс или пакет проекта, используя автоконфигурацию.
Есть ли способ сделать это? Может быть, переопределив некоторые bean в нашей автоконфигурации?
Идеальный способ - это то, что позволяет установить базовый класс репозитория без необходимости повторного определения всей автоконфигурации spring Data JPA.