gpt4 book ai didi

redis - 如何将 redis CrudRepository 关联到数据库

转载 作者:IT王子 更新时间:2023-10-29 06:01:50 26 4
gpt4 key购买 nike

我在我的 spring-boot 1.4 应用程序上使用 spring-data-redis。我有两个不同的 CrudRepositories。但是,我很难将它们与各自的连接工厂相关联。

底线是:我希望 PersonRedisRepository 使用 db #6,而 OtherPurposeRedisRepository 使用 db #3。老实说,我不是 100% 确定我处理问题的方式是否正确。


存储库

interface PersonRedisRepository extends CrudRepository<Person, String> {

}

interface OtherPurposeRedisRepository extends CrudRepository<OtherPurpose, String> {

}

人员存储库的配置

@EnableRedisRepositories(basePackageClasses = [PersonRedisRepository.class], redisTemplateRef = "personRedisTemplate")
class RedisConfigurationForPerson {

@Bean(name = "personFactory")
public RedisConnectionFactory personJedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory()
jedisConnectionFactory.usePool = true
jedisConnectionFactory.hostName = "127.0.0.1"
jedisConnectionFactory.database = 6

return jedisConnectionFactory
}

@Bean(name = "personRedisTemplate")
public RedisTemplate<byte[], byte[]> availabilityCacheRedisTemplate() {
RedisTemplate<byte[], byte[]> template = new RedisTemplate<byte[], byte[]>()
template.setConnectionFactory(personJedisConnectionFactory())

template
}
}

其他目的存储库的配置

@EnableRedisRepositories(basePackageClasses = [OtherPurpsoseRepository.class], redisTemplateRef = "otherPurposeRedisTemplate")
class RedisConfigurationForOtherPurpose {

@Bean(name = "otherPurposeFactory")
public RedisConnectionFactory otherPurposeJedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory()
jedisConnectionFactory.usePool = true
jedisConnectionFactory.hostName = "127.0.0.1"
jedisConnectionFactory.database = 3

return jedisConnectionFactory
}

@Bean(name = "otherPurposeRedisTemplate")
public RedisTemplate<byte[], byte[]> otherPurposeRedisTemplate() {
RedisTemplate<byte[], byte[]> template = new RedisTemplate<byte[], byte[]>()
template.setConnectionFactory(otherPurposeJedisConnectionFactory())

template
}
}

一切正常,我可以使用两个存储库进行读/写。但是,它们都在 db 6 上读/写。

最佳答案

另一个人和你有同样的问题。即使这些示例是针对 jpa 存储库的,这些链接也应该对您有所帮助:

Spring Boot Configure and Use Two DataSources

http://www.baeldung.com/spring-data-jpa-multiple-databases

您必须首先使用@Primay 注释绑定(bind)配置数据源并指定您正在处理的数据源。这是第一部分。我已经快速浏览了第二部分,稍后我会进行更深入的介绍。完成后会更新我的 psot ;)

关于redis - 如何将 redis CrudRepository 关联到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43336459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com