我已从spring boot version 1.1.5升级到1.2.1,现在我得到了NoSuchBeanDefinitionException
。
我有简单的主要课程
@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
}
和impl class。
在将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)
答案 0 :(得分: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
是否有效。