当前位置: 首页 > 知识库问答 >
问题:

如何在使用Spring Data Rest时从组件扫描中排除@repository

毛淳
2023-03-14

在一个spring boot项目中,我在从组件扫描中排除一些存储库时遇到了问题。

我有一个包含一些实体和一些存储库(JpaRepositories)的库。出于某种原因,我实现了一个小型Spring Boot Data Rest应用程序,该应用程序将用于让测试人员快速访问实体。因此,我实现了一个存储库,它扩展了PagingAndSortingRepository,并用@RepositoryRestResource进行了注释。

// exclude V02
@SpringBootApplication
@ComponentScan(excludeFilters = {
        @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
                DataRepository.class})
})

// exclude V01
@SpringBootApplication(exclude = { DataRepository.class })

没有成功。当我调用/beansendpoint(由spring boot actuator提供)时,我总是看到

{
    bean: "dataRepository",
    aliases: [ ],
    scope: "singleton",
    type: "org.codefromhell.test.repoloading.DataRepository",
    ...
},
{
    bean: "dataApiRepository",
    aliases: [ ],
    scope: "singleton",
    type: "org.codefromhell.test.repoloading.api.DataApiRepository",
    ...
},

共有1个答案

阚元白
2023-03-14

因为它是一个存储库,而不是严格意义上的@component,所以需要通过向应用程序添加@enableJParepositories来排除它:

@SpringBootApplication
@EnableJpaRepositories(excludeFilters = {
        @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
                DataRepository.class})
})
public class ApiApplication {

    public static void main(String[] args) {
        SpringApplication.run(ApiApplication.class, args);
    }
}
 类似资料:
  • 在我的项目中有许多控制器类,其中一些用@RESTController注释,其余的用@controller和@ResponseBody注释。整个基包都在根上下文Spring配置类和web app上下文Spring配置类中进行组件扫描。我希望在初始化根上下文时使用组件筛选器来停止对控制器类的扫描。我尝试了以下方法,但没有达到预期的效果。我仍然看到Controller类存在于根应用程序上下文中。

  • 环境:IBM WAS 8.0,CDI 1.0实现:OpenWebBeans 我怎么能排除几个包从服务器启动扫描? 是否有任何CDI扩展可用或需要为此编写自定义扩展?

  • 在SonarQube runner中,可以通过sonar project属性中的sonar.exclusions属性来管理排除的项目。通过这种方式,我们可以独立于代码库来管理构建配置。 当项目文件夹被称为***.tests时,在将其添加到排除设置后,仍会对其进行扫描。

  • 问题内容: 如何用Java递归列出文件夹中的所有文件? 问题答案: 不确定要如何表示树?无论如何,这是一个使用递归扫描整个子树的示例。文件和目录是相同的。请注意,File.listFiles()对于非目录返回null。 Java 7提供了一些改进。例如,DirectoryStream一次提供一个结果- 调用者在执行操作之前不再需要等待所有I / O操作完成。这允许增量GUI更新,提前取消等。 请注

  • 我开发了一个字符排序器,我想每次字符串排序后提示用户输入一个新的字符串。我遇到的问题是扫描仪一直在扫描用户的第一个输入。如果我使用scanner.next(),它不会计算输入末尾的空白,这不是解决方案。 这是while循环的开始。一旦代码完成,它将再次从“inputtext”开始。

  • 在spring boot应用程序中,我有一个包含应用程序类包,如 默认情况下,它自动从该类的包中设置ComponentScan。然后我有几个子包,每个子包包含几个组件和服务bean(使用注释)。但是为了对不同的用例重用这个应用程序,我需要启用/禁用一些子包中的所有组件,最好是通过一个属性。 那就是我有一些子包,比如 现在,基于某些属性,我想在其中一个包中启用(扫描)bean,例如。 我以为我可以使

  • 我是java新手,我的任务是使用扫描器读取数组,并在另一种方法中读取int。 我正在做的是计算一只兔子到达河对岸所需的最小跳跃次数。数组中的int表示从河的一边开始的石头的距离,另一个int表示石头的数量。兔子能跳的最远距离是50。 对于输入和输出: 输入n:7(输入,河中的石头数)32 46 70 85 96 123 145(输入,石头与起点之间的距离,最后一个数字是河的宽度,即目的地(河对岸)

  • 问题内容: 我找到了有关如何扫描条形码的教程。但是在我的应用程序中,我必须扫描QR码。如何在Android中扫描QR码? 问题答案: 和在