在模型类 @Hashkey Redis 注释中指定动态环境变量时遇到麻烦。
型号:
@RedisHash("${spring.redis.namespace}:Book")
public class Book {
@Id
private String id;
private String name;
}
我的application.properties文件:
spring.redis.namespace=local
结果键是“${spring.redis.namespace}:Book”而不是 local:Book
谁能帮我解决这个问题吗?
最佳答案
请使用Keyspaces去做吧。有两种方法。我用一种方法来完成你的要求。
@Configuration
@EnableRedisRepositories(keyspaceConfiguration = MyKeyspaceConfiguration.class)
public class ApplicationConfig {
@Value("${spring.redis.namespace}:Book")
String myKey;
//... RedisConnectionFactory and RedisTemplate Bean definitions omitted
public static class MyKeyspaceConfiguration extends KeyspaceConfiguration {
@Override
protected Iterable<KeyspaceSettings> initialConfiguration() {
return Collections.singleton(new KeyspaceSettings(Book.class, myKey));
}
}
}
关于java - Redis 模型注释中数据类中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64580468/