Spring boot 1.2.1没有为依赖项找到类型的限定bean

gaj*_*ajo 0 spring spring-data-mongodb spring-boot

我已经从春季启动版本1.1.5升级到1.2.1,现在我得到了NoSuchBeanDefinitionException.

我有简单的主要课程

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
Run Code Online (Sandbox Code Playgroud)

后来我有了回购

@Repository
public interface UserRepository extends MongoRepository<User, String>, UserRepositoryCustom {

   ...


}
Run Code Online (Sandbox Code Playgroud)

定制回购

public interface UserRepositoryCustom {
    // custom methods
}
Run Code Online (Sandbox Code Playgroud)

和impl类.

在将spring boot版本更新到1.2.1之前,一切都按预期工作.我已阅读https://github.com/spring-projects/spring-boot/issues/2237并尝试删除@Repository注释但未成功.我错过了什么吗?Thnx寻求帮助

编辑堆栈跟踪:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.example.respositories.UserRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1308)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1054)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:949)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
Run Code Online (Sandbox Code Playgroud)

dun*_*nni 7

有两种方法可以启用JPA存储库:

使用@EnableJpaRepositories注释并指定参数(如基本存储库)或将属性添加spring.data.jpa.repositories.enabled=true到application.properties文件以激活Spring Data JPA的Spring Boot自动配置.

@Repository注释是不适合这个用例,并可以安全地取出.

如果您已满足所有条件且仍未配置存储库,则可以尝试添加Spring Boot Actuator模块,并打开URL http://yourserver.domain/autoconfig.这将为您提供所有自动配置及其状态(活动或非活动及其原因).检查JpaRepositoriesAutoConfiguration是否为活动状态.

  • 关于basePackages属性:如果你没有指定它,Spring将搜索指定注释的类的包,以及下面的所有包.因此,如果您在子包中有MongoConfig类,则必须定义basePackage属性以包含MongoConfig类之上或旁边的包. (2认同)