Как исключить @Repository из проверки компонентов при использовании Spring Data Rest
в весеннем загрузочном проекте у меня есть проблемы, чтобы исключить некоторые репозитории из проверки компонентов.
У меня есть библиотека, которая содержит некоторые сущности и некоторые репозитории (JpaRepositories). По какой-то причине я реализовал небольшое приложение Spring Boot Data Rest, которое должно использоваться для быстрого доступа тестировщиков к объектам. Поэтому я реализовал хранилище, которое расширяет PagingAndSortingRepository и снабжено аннотацией @RepositoryRestResource.
При запуске приложения все хранилище будет отсканировано и доступно. Пока я хочу, чтобы хранилища данных оставались доступными, я аннотировал компонентный сканер, чтобы исключить ненужные репозитории. Но это не работает. Я проверил с помощью конечной точки бинов привода и что бы я ни делал - никакие репозитории не исключаются.
Чтобы продемонстрировать проблему, я создал простое демонстрационное приложение:https://github.com/magomi/springboot-restdata-repoloading.
Чтобы исключить DataRepository, я попробовал два подхода:
// exclude V02
@SpringBootApplication
@ComponentScan(excludeFilters = {
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
DataRepository.class})
})
а также
// exclude V01
@SpringBootApplication(exclude = { DataRepository.class })
Безуспешно. Когда я вызываю конечную точку / beans (предоставляется приводом с пружинной загрузкой), я всегда вижу
{
bean: "dataRepository",
aliases: [ ],
scope: "singleton",
type: "org.codefromhell.test.repoloading.DataRepository",
...
},
{
bean: "dataApiRepository",
aliases: [ ],
scope: "singleton",
type: "org.codefromhell.test.repoloading.api.DataApiRepository",
...
},