您好,登錄后才能下訂單哦!
這篇文章主要介紹怎么給Cacheable的key加上常量,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
由于緩存的注解有類似的前綴,所以抽取出常量。
public static final String KEY_CERT_TYPE_CODE_PREFIX = "ec_cert_type:cert_type_code:"; @Override @Cacheable(key = KEY_CERT_TYPE_CODE_PREFIX + "+#code") public EcCertType loadCertTypeByCode(String code) { // something return type; }
但是使用時,報錯:
EL1041E: After parsing a valid expression, there is still more data in the expression
經修改,給常量加上單引號,使:不被SpEL解析,解決。
public static final String KEY_CERT_TYPE_CODE_PREFIX = "'ec_cert_type:cert_type_code:'"; @Override @Cacheable(key = KEY_CERT_TYPE_CODE_PREFIX + "+#code") public EcCertType loadCertTypeByCode(String code) { // something return type; }
使用默認key生成器的話,緩存的對象需要實現toString()方法,里面拼接自己想要作為key的字段。
調用查詢接口之后,緩存中的key如下:
其中TRANSFORMERS-ACT_DICT-KEY是定義的value值,表示放到哪個緩存中。
運行后key值如下
此時是以傳遞過來的Student對象中的id值作為key。
引用自定義的生成器
key值如下:
以上是“怎么給Cacheable的key加上常量”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。