【问题标题】:How do I prefix class names wih a custom string?如何使用自定义字符串为类名添加前缀?
【发布时间】:2021-11-01 07:29:57
【问题描述】:

为了实现某种命名空间,我需要在整个 Spring 应用程序中为 Redis JPA 存储库的键添加一个静态字符串前缀。

我读到了 spring.cache.redis.key-prefix 配置选项,但它似乎只适用于缓存。

如何为 JPA 存储库获得相同的行为?

【问题讨论】:

    标签: java spring jpa redis


    【解决方案1】:

    在你的@EnableRedisReposiories 你可以这样做:

    @EnableRedisRepositories(keyspaceConfiguration = MyCustomKeyspaceConfiguration.class)
    

    然后在 App config 中添加 RedisMappingContext bean 和客户键空间配置类:

    @Bean
    public RedisMappingContext keyValueMappingContext() {
      return new RedisMappingContext(
        new MappingConfiguration(new IndexConfiguration(), new MyCustomKeyspaceConfiguration()));
    }
    
    public static class MyCustomKeyspaceConfiguration extends KeyspaceConfiguration {
    
      @Override
      protected Iterable<KeyspaceSettings> initialConfiguration() {
        List<KeyspaceSetting> settings = new ArrayList<KeyspaceSetting>();
        settings.add(new KeyspaceSetting(Foo.class, "my-prefix" + Foo.class.getName()));
        return settings;
      }
    }
    

    在上面的例子中,我们说Foo 类的键前缀为"my-prefix"KeyspaceConfiguration 允许对某些类型的键空间和生存时间选项进行编程设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      • 2012-11-10
      • 2011-03-04
      • 2020-10-29
      • 2013-08-27
      相关资源
      最近更新 更多