如果@cacheable(「***」)
object get***(string a, string b, string c);
spring的快取使用的key是espl表示式,然後翻看原始碼key預設用的生成方式是org.springframework.cache.interceptor.******keygenerator
大於1個引數走的是最後乙個方法
/**
* generate a key based on the specified parameters.
*/public
static object generatekey
(object.
.. params)
if(params.length ==1)
}return
new******key
(params)
;}
然後檢視org.springframework.cache.interceptor.******key對應**,發現返回的其實是******key
/**
* create a new instance.
* @param elements the elements of the key
*/public
******key
(object.
.. elements)
下面博文的 mykeygenerator 這個類
sprintboot使用spring-security包,快取記憶體與redis共存
方案二:@cacheable(value=「***」, key=「***x」)
@cacheevict(value=「***」, key=「***x」)
做相應的key配置
陣列的話可以使用 key = 「#root.args[0]」
名字位置
描述示例
methodname
root object
當前被呼叫的方法名
#root.methodname
method
root object
當前被呼叫的方法
#root.method .name
target
root object
當前被呼叫的目標物件
#root.target
targetclass
root object
當前被呼叫的目標物件類
#root.targetclass
args
root object
當前被呼叫的方法的引數列表
#root.args[0]
caches
root object
當前方法呼叫使用的快取列表
#root.caches[0].name
argument name
evaluation context
方法引數的名字,可以直接#引數名,也可以使用#p0或#a0的形式,0代表引數的索引
#iban、#a0、#p0
result
evaluation context
方法執行後的返回值
#result
如何使用Feign構造多引數的請求
tips 本文基於spring cloud greenwich sr1,理論上支援finchley及更高版本。本節來 如何使用feign構造多引數的請求。筆者以get及post請求為例講解,其他方式 例如delete put等 的請求原理相通,讀者可自行研究。假設需請求的url包含多個引數,例如ht...
GoLang中如何使用多引數屬性傳參
我們常常因為傳入的引數不確定而頭疼不已,golang 為我們提供了接入多值引數用於解決這個問題。但是一般我們直接寫已知 即所有的值都知道乙個乙個塞進去就好了,但是絕大部分我們是得到使用者的大量輸入想通過迴圈傳入,但是這樣發現無法使用這個多值引數的功能。其實底層實現將多個引數視為傳入的乙個不定長陣列。...
GoLang中如何使用多引數屬性傳參
我們常常因為傳入的引數不確定而頭疼不已,golang 為我們提供了接入多值引數用於解決這個問題。但是一般我們直接寫已知 即所有的值都知道乙個乙個塞進去就好了,但是絕大部分我們是得到使用者的大量輸入想通過迴圈傳入,但是這樣發現無法使用這個多值引數的功能。其實底層實現將多個引數視為傳入的乙個不定長陣列。...