1.默認使用keyGenerator生成:默認使用simpleKeyGennerator生成key:
simpleKeyGennerator默認如果沒有參數:key = new SimpleKey()
一個參數:key = 參數值
多個參數:key = new SimpleKey(params)

2.可以用SpEL表達式去寫key,可以實現動態拼接key,key="#root.methodName+'['+#參數屬性名+']'"會被拼接為方法名【參數】。
3.也可以自定義一個key生成器
package com.config; import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.lang.reflect.Method; import java.util.Arrays; @Configuration public class MyCacheConfig { @Bean(name = "myKeyGenerator") public KeyGenerator keyGenerator(){ return new KeyGenerator() { @Override public Object generate(Object target, Method method, Object... params) { return method.getName()+"["+Arrays.asList(params).toString() +"]"; } }; } }
調用的時候:
@Cacheable(cacheNames = "users",keyGenerator = "myKeyGenerator")