代码之家  ›  专栏  ›  技术社区  ›  sschmeck

NoSuchBeanDefinitionException用于库中的存储库

  •  0
  • sschmeck  · 技术社区  · 8 年前

    我创建了一个库,用于在多个Spring引导应用程序上共享代码。

    库包含一个知识库类 RequestRepository . 在将库添加到Spring引导项目之后,它编译并成功运行单元测试。

    // Library: RequestRepository.java
    package org.test.lib;
    
    public interface RequestRepository extends CrudRepository<Request, Integer> {}
    
    // Application: Application.java
    package org.test.app;
    
    @SpringBootApplication
    @ComponentScan(basePackages = {"org.test.app", "org.test.lib"})
    public class Application {
      // ...
    }
    

    启动应用程序会引发 NoSuchBeanDefinitionException 当Spring尝试自动连接存储库时。

    原因: org.springframework.beans.factory.NoSuchBeanDefinitionException 没有 ‘类型的限定bean’ org.test.lib.repositories.RequestRepository ’ 可用:应至少有1个符合autowire条件的bean 候选人。依赖项注释:

    我为组件扫描启用了调试日志记录,并获得了有关存储库的以下输出。

    2018-07-10 08:33:25.035调试14976--[主] .I.S.PathMatchingResourcePatternResolver:解析的位置模式

    1 回复  |  直到 8 年前
        1
  •  1
  •   sschmeck    8 年前

    @EnableJpaRepositories

    @SpringBootApplication
    @EnableJpaRepositories(basePackages = {"org.test.app", "org.test.lib"})
    @ComponentScan(basePackages = {"org.test.app", "org.test.lib"})
    public class Application {
      // ...
    }
    

    Spring guide

    @SpringBootApplication basePackageClasses=MyRepository.class

    @Entity @EntityScan