映射仓库
Map repositories 位于 KeyValueTemplate 之上。使用默认的 PredicateQueryCreator 可以根据给定的方法名派生查询和排序表达式,如下例所示:
@Configuration
@EnableMapRepositories
class KeyValueConfig {
}
interface PersonRepository implements CrudRepository<Person, String> {
List<Person> findByLastname(String lastname);
}
配置 QueryEngine
可以更改 QueryEngine 并使用自定义的 QueryEngine 替代默认的 QueryEngine。EnableMapRepositories 注解允许通过相应属性提供 QueryEngineFactory 和 QueryCreator 来进行配置。请注意,QueryEngine 需要能够处理由配置的 QueryCreator 创建的查询。
存储后端配置
KeySpaceStore 提供了一个简单的存储门面,可与 EnableMapRepositories 的 keySpaceStoreRef 属性一起使用,以将 bean 引用设置为实际存储,覆盖 mapType 设置。
@Configuration
@EnableMapRepositories(keySpaceStoreRef = "store") 1
public class MapDbConfiguration {
@Bean
KeySpaceStore store(DB db) { 1
return new KeySpaceStore() {
@Override
public Map<Object, Object> getKeySpace(String keyspace) {
return db.hashMap(keyspace, ...
}
@Override
public void clear() {
//
}
};
}
}
通过 bean 名称引用
KeySpaceStore。