java - Redis 模型注释中数据类中的环境变量

标签 java spring spring-boot redis model

在模型类 @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/

相关文章:

java - 具有翻转数值的 Android 希伯来语 RTL 字符串

java - 如何将 application.yml 中的映射注入(inject)到 Spring Boot 中的字段中?

java - 即使我们在 catch block 中处理异常,如何在 spring 中使用 @ControllerAdvice 处理异常

java - 删除默认的 Spring Boot 欢迎页面

java - 以编程方式获取证书详细信息

java - 如何在后台加载 Activity 时显示带有动画的启动屏幕。 (安卓)

java - 在 openjdk :7-jre-alpine docker how to install python 3. 6

spring - 如何使用带注释的参数将参数传递给 Spring AOP 建议?

Spring(kotlin) Controller 接收数据类的不可为空的参数为空

java - Vaadin 14 'could not navigate to "' 重新包装后