利用AOP實現redis快取

2021-10-25 19:11:08 字數 1416 閱讀 2781

1.定義註解

@target

(elementtype.method)

//作用位置

@retention

(retentionpolicy.runtime)

//什麼時候有效·

public @inte***ce

cachefind

2.使用註解

在方法上使用這個註解

@override

@cachefind

(key=

"iten_cat_parentid"

)public list

finditemcatlist

(long parentid)

2.獲取註解標識的方法

通過joinpoint獲取註解中的key

public object around

(proceedingjoinpoint joinpoint)

throws throwable

method method = targetclass.

getmethod

(name,classargs)

;//獲得註解所在方法的物件

cachefind cachefind = method.

getannotation

(cachefind.

class);

//獲得註解物件

string key = cachefind.

key();

system.out.

println

(key)

;return joinpoint.

proceed()

;}

利用api獲取註解中的key

@around

("@annotation(com.jt.annotation.cachefind)"

)public object around

(proceedingjoinpoint joinpoint)

throws throwable

4.利用aop實現redis快取

@around

("@annotation(cachefind)"

)//@around註解可以用來在呼叫乙個具體方法前和呼叫後來完成一些具體的任務。

public object around

(proceedingjoinpoint joinpoint,cachefind cachefind)

throws throwable

else

return result;

}

aop中的語法規範2:

自定義AOP實現註解式redis快取

先說怎麼使用,超簡單 註解類 string desc default 描述 long expire default 60 快取過期時間 單位 秒 string key boolean param default false 快取key是否需要拼湊引數 無引數快取的 public listfindal...

使用AOP實現快取註解

半年前寫了乙個註解驅動的快取,最近提交到了github。快取大量的被使用在應用中的多個地方,簡單的使用方式就是 先查詢快取中是否存在資料,如果不存在或者快取過期再查詢資料庫,並將查詢的結果快取一段時間,快取key通常是入參的物件或者入參物件的某些屬性,有些時候還需要按照某種條件判斷是否快取。可以看到...

REDIS實現資料快取

注意 使用的map必須是string,string型別的,意味著如果使用map儲存user和userid,userid作為key,物件作為value,那麼物件在進入map之前需要使用fastjson進行object到json的轉換。tips jedis.sadd key value 建立乙個list...