#java #spring #spring-boot #redis #model
#java #весна #весенняя загрузка #redis #Модель
Вопрос:
Проблема с указанием динамической переменной env в аннотации Redis класса модели @Hashkey.
Модель:
@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
Может ли кто-нибудь помочь мне с этим?
Ответ №1:
Пожалуйста, используйте 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));
}
}
}