Как отключить экспозицию по умолчанию для хранилищ данных Spring Data REST?
У меня есть проект, который использует spring -data-rest и имеет проект зависимости, который использует только Spring Data. Оба проекта имеют хранилища данных Spring и используют @EnableJpaRepositories
для реализации своих интерфейсов репозитория, но я хочу экспортировать репозитории в родительский проект.
Здесь мой вопрос: есть ли способ настроить Spring Data REST, чтобы показывать только конечные точки отдыха для ресурсов в родительском проекте, без явного аннотирования каждого репозитория в проекте зависимостей с помощью @RepositoryRestResource(exported = false)
?
Если я могу сделать это только с @RepositoryRestResource
, отключив его, и еще хуже, ни один другой проект с другим вариантом использования не сможет включить конечные точки REST для этих репозиториев, проект моей зависимости должен будет включать Spring Data REST исключительно для...
Ответы
Ответ 1
В настоящее время нет глобального переключателя для того, что вы ищете. Я подал этот билет для вас для включения в следующий крупный выпуск.
Не уверен, что это опция для вас, но интерфейсы закрытого хранилища пакетов в настоящее время не отображаются, если явно не аннотация. Если вы можете сделать все эти хранилища репозиториев библиотеки защищенными, что может быть выгодным по явной аннотации.
Ответ 2
Возвращаясь назад, когда я искал эту конкретную настройку. Похоже, теперь это реализовано. В этом случае вы хотите установить spring.data.rest.detection-strategy = аннотировать, чтобы избежать воздействия по умолчанию.
Все параметры application.properties:
# Exposes all public repository interfaces but considers @(Repository)RestResource\u2019s `exported flag.
spring.data.rest.detection-strategy=default
# Exposes all repositories independently of type visibility and annotations.
spring.data.rest.detection-strategy=all
# Only repositories annotated with @(Repository)RestResource are exposed, unless their exported flag is set to false.
spring.data.rest.detection-strategy=annotated
# Only public repositories annotated are exposed.
spring.data.rest.detection-strategy=visibility
Ссылка: 4.6.1. Какие хранилища отображаются по умолчанию?