Как отключить экспозицию по умолчанию для хранилищ данных 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. Какие хранилища отображаются по умолчанию?