java - 如何禁用 Spring Data REST 存储库的默认公开?

标签 java spring-data spring-data-rest

我有一个使用 spring-data-rest 的项目,并且有一个只使用 Spring Data 的依赖项目。两个项目都有spring数据仓库,都使用@EnableJpaRepositories来实现它们的仓库接口(interface),但是我只想导出父项目中的仓库。

这是我的问题:是否有某种方法可以将 Spring Data REST 配置为仅公开父项目中资源的其余端点,而不必使用 @RepositoryRestResource(exported = false) 显式注释依赖项目中的每个存储库?

如果我只能通过禁用它的 @RepositoryRestResource 来做到这一点,更糟糕的是,没有其他具有不同用例的项目能够为这些存储库启用 REST 端点,我的依赖项目将必须包含 Spring Data REST 仅用于……

最佳答案

在我寻找这个特定设置时循环回到这里。看起来现在已经实现了。在这种情况下,您需要设置 spring.data.rest.detection-strategy=annotated 以避免默认曝光。

所有 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

引用文献

关于java - 如何禁用 Spring Data REST 存储库的默认公开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330716/

相关文章:

用于验证 url、 boolean 值、字符串的 Java 正则表达式

spring - 寻找Java系统参数的Spring-Hadoop Job-Runner问题

java - 在 spring 中,一对多实体关系不获取数据

java - 将 POST 请求 header 发送到 Web 服务器

java - 如何配置 eclipse 以使用额外参数运行我的 java 程序?

java - 如何使用spring data jpa查询没有主键的表

kotlin - Page 类的 graphql 架构定义应该是什么样子?

spring-boot - @RepositoryEventHandler 事件以 @RepositoryRestController 停止

Spring Data Rest 异常处理 - 返回通用错误响应

javascript - 通过 JavaScript 重定向进行爬网