我们的Spring Boot Test套件使用专门用于测试的bean xml文件运行(@ContextConfiguration(locations = {" classpath:site-beans-test.xml"}))。
我们一直在使用Spring Data JPA,只是添加了Spring Data Redis(1.7.2)。我有一个扩展CrudRepository的@Repository接口,其中Token是一个用@RedisHash注释的类。
在没有测试的情况下构建时(-Dmaven.test.skip = true),这很正常,但是在运行测试时它们会失败:
NoSuchBeanDefinitionException: No qualifying bean of type [com.company.service.domain.redis.repository.TokenRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency
使用Spring Data JPA,可以使用<jpa:repositories base-package="..." />
标记来正确连接存储库代理。
有没有办法为Spring Data Redis存储库执行此操作?
答案 0 :(得分:0)
Spring Data Redis使用@EnableRedisRepositories()
注释来配置redis存储库的位置。它可以用作:
@Configuration
@EnableRedisRepositories(basePackages = "com.orm.repo")
public class RedisConfiguration {
}
这将使您能够从Redis存储库中分离JPA存储库。
这也可用于解决:
使用JPA存储库时Did you forget to provide one using @Id?
spring-data-redis
尝试加载注释为@Repository
的其他对象。