程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用Spring Data Rest时如何从组件扫描中排除@Repository大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用Spring Data Rest时如何从组件扫描中排除@Repository?

开发过程中遇到使用Spring Data Rest时如何从组件扫描中排除@Repository的问题如何解决?下面主要结合日常开发的经验,给出你关于使用Spring Data Rest时如何从组件扫描中排除@Repository的解决方法建议,希望对你解决使用Spring Data Rest时如何从组件扫描中排除@Repository有所启发或帮助;

因为它是一个存储库,而不是严格意义上的a @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);
    }
}

解决方法

在Spring Boot项目中我无法从组件扫描中排除某些存储库。

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

当应用程序启动时,将扫描所有存储库并使之可用。只要我只想拥有可用的Data
Rest信息库,我便为componenten扫描器添加了注释,以排除不需要的信息库。但这是行不通的。我检查了执行器bean端点以及执行的所有操作-
不排除任何存储库。

为了演示该问题,我创建了一个简单的演示应用程序:https : //github.com/magomi/springboot-restdata-
repoloading。

为了排除DataRepository,我尝试了两种方法:

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

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

没有成功。当我调用/ beans端点(由Spring Boot执行器提供)时,我总是看到

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

大佬总结

以上是大佬教程为你收集整理的使用Spring Data Rest时如何从组件扫描中排除@Repository全部内容,希望文章能够帮你解决使用Spring Data Rest时如何从组件扫描中排除@Repository所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。