CacheKeyGenerator
This commit is contained in:
@@ -106,7 +106,7 @@ public class CacheAction {
|
||||
this.keyGenerator = resourceFactory.findChild(generatorName, CacheKeyGenerator.class);
|
||||
} else {
|
||||
MultiHashKey dynKey = MultiHashKey.create(paramNames, key);
|
||||
this.keyGenerator = (t, a, args) -> dynKey.keyFor(args);
|
||||
this.keyGenerator = CacheKeyGenerator.create(dynKey);
|
||||
}
|
||||
this.remoteExpire = createDuration(cached.getRemoteExpire());
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
|
||||
package org.redkale.cache.spi;
|
||||
|
||||
import java.util.Objects;
|
||||
import org.redkale.util.MultiHashKey;
|
||||
|
||||
/**
|
||||
* 缓存key生成器
|
||||
*
|
||||
@@ -33,7 +36,25 @@ public interface CacheKeyGenerator {
|
||||
*
|
||||
* @return name
|
||||
*/
|
||||
default String name() {
|
||||
return "";
|
||||
public String name();
|
||||
|
||||
/**
|
||||
* 根据MultiHashKey生成一个CacheKeyGenerator
|
||||
* @param key MultiHashKey
|
||||
* @return
|
||||
*/
|
||||
public static CacheKeyGenerator create(MultiHashKey key) {
|
||||
Objects.requireNonNull(key);
|
||||
return new CacheKeyGenerator() {
|
||||
@Override
|
||||
public String generate(Object target, CacheAction action, Object... params) {
|
||||
return key.keyFor(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return "";
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user