2015-02-04 2 views
14

У меня есть проект, в котором используется Spring-data-rest, и есть проект зависимости, который использует только Spring Data. Оба проекта имеют репозитории данных весны и используют @EnableJpaRepositories для реализации своих интерфейсов репозитория, но я хочу экспортировать репозитории в родительский проект.Как отключить стандартную экспозицию хранилищ данных REST Spring?

Вот мой вопрос: есть ли способ настроить Spring REST для представления только конечных точек отдыха для ресурсов в родительском проекте, без необходимости явно аннотировать каждый репозиторий в проекте зависимостей с помощью @RepositoryRestResource(exported = false)?

Если я могу сделать это только с @RepositoryRestResource, и, что еще хуже, ни один другой проект с другим вариантом использования не сможет включить конечные точки REST для этих репозиториев, мой проект зависимости должен будет включать Spring Data REST исключительно для ...

ответ

13

В настоящее время нет ни одного глобального переключателя на то, что вы ищете. Я подал this ticket для вас для включения в следующий крупный выпуск.

Не уверен, что это опция для вас, но интерфейсы закрытого хранилища пакетов в настоящее время не отображаются, если они явно не аннотируются. Если вы можете сделать все эти хранилища репозиториев библиотеки защищенными, что может быть выгодным по явной аннотации.

+2

Сделано РЕПО частного пакета. Спасибо, что создали этот билет. – gyoder

12

Looping назад здесь, поскольку я искал эту конкретную настройку. Похоже, теперь это реализовано. В этом случае вы должны установить 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. Which repositories get exposed by defaults?

Смежные вопросы