Spring boot 1.2.1 没有找到依赖类型的合格 bean
Spring boot 1.2.1 No qualifying bean of type found for dependency
我已经从 spring 引导版本 1.1.5 升级到 1.2.1,现在我得到了 NoSuchBeanDefinitionException
。
我有简单的主class
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
后来我有回购
@Repository
public interface UserRepository extends MongoRepository<User, String>, UserRepositoryCustom {
...
}
自定义存储库
public interface UserRepositoryCustom {
// custom methods
}
并实现 class.
在将 spring 引导版本更新到 1.2.1 之前,一切都按预期工作。
我已阅读 https://github.com/spring-projects/spring-boot/issues/2237 并尝试删除 @Repository
注释但没有成功。
我错过了什么吗?
感谢帮助
编辑堆栈跟踪:
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)
有两种方法可以启用 JPA 存储库:
要么使用 @EnableJpaRepositories
注释并指定参数(如基本存储库),要么将 属性 spring.data.jpa.repositories.enabled=true
添加到您的 application.properties 文件以激活 Spring Spring Data JPA 的引导自动配置。
@Repository
注释不适合此用例,可以安全删除。
如果你已经满足了所有条件,但仍然没有配置存储库,那么你可以尝试添加Spring Boot Actuator 模块,并打开url http://yourserver.domain/autoconfig。这将为您提供所有自动配置及其状态及其原因(活动或非活动及其原因)。检查 JpaRepositoriesAutoConfiguration
是否处于活动状态。
我已经从 spring 引导版本 1.1.5 升级到 1.2.1,现在我得到了 NoSuchBeanDefinitionException
。
我有简单的主class
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
后来我有回购
@Repository
public interface UserRepository extends MongoRepository<User, String>, UserRepositoryCustom {
...
}
自定义存储库
public interface UserRepositoryCustom {
// custom methods
}
并实现 class.
在将 spring 引导版本更新到 1.2.1 之前,一切都按预期工作。
我已阅读 https://github.com/spring-projects/spring-boot/issues/2237 并尝试删除 @Repository
注释但没有成功。
我错过了什么吗?
感谢帮助
编辑堆栈跟踪:
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)
有两种方法可以启用 JPA 存储库:
要么使用 @EnableJpaRepositories
注释并指定参数(如基本存储库),要么将 属性 spring.data.jpa.repositories.enabled=true
添加到您的 application.properties 文件以激活 Spring Spring Data JPA 的引导自动配置。
@Repository
注释不适合此用例,可以安全删除。
如果你已经满足了所有条件,但仍然没有配置存储库,那么你可以尝试添加Spring Boot Actuator 模块,并打开url http://yourserver.domain/autoconfig。这将为您提供所有自动配置及其状态及其原因(活动或非活动及其原因)。检查 JpaRepositoriesAutoConfiguration
是否处于活动状态。