【问题标题】:Is it possible to wire Spring Data Redis repositories manually in beans.xml?是否可以在 beans.xml 中手动连接 Spring Data Redis 存储库?
【发布时间】:2017-02-15 20:30:03
【问题描述】:

我们的 Spring Boot 测试套件使用专门用于测试的 beans 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 存储库做到这一点?

【问题讨论】:

  • 我也面临同样的问题。你找到解决办法了吗?

标签: spring-boot spring-data-redis


【解决方案1】:

Spring Data Redis 使用 @EnableRedisRepositories() 注释来配置你的 redis 存储库的位置。它可以用作:

@Configuration
@EnableRedisRepositories(basePackages = "com.orm.repo")
public class RedisConfiguration {

}

这将使您能够将 JPA 存储库与 Redis 存储库分开。 这也可以用来解决: Did you forget to provide one using @Id? 使用 JPA 存储库时,spring-data-redis 尝试加载使用 @Repository 注释的其他对象。

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 2022-08-03
    • 2020-02-24
    • 2014-11-24
    • 2017-06-12
    • 2016-11-27
    • 1970-01-01
    • 2013-04-03
    相关资源
    最近更新 更多