緩存是一個良好設計架構的必須元素,因爲使用具有通用目的的架構機制,勢必會造成一些計算的冗餘,造成性能的降低,通過緩存機制,就可以彌補這方面的問題。
Liferay中大量的使用了緩存機制,其核心都是MultiVMPool機制,但在具體使用上有兩種方式。
方式一:
使用FinderCache類,具體用法:
1、放入緩存 FinderCache.putResult(classNameCacheEnable, className, methodName, params, args, result),其中params是參數類型,Args是參數值,兩者需要進行匹配;
2、從緩存中獲取 FinderCache.getResult(className, methodName, params, args)。
方式二:
使用各個應用自己的緩存機制。比如在CalEvent中,參考CalEventLocalUtil,需要注意的是,這個Util方法是在service.impl目錄中的,也就是說是需要自己編寫的。
這些代碼都是對MultiVMPoolUtil進行了封裝,具體操作步驟如下:
1、放入緩存 MultiVMPoolUtil.put(cache, key, object), 其中cache是一個PortalCache類型的對象,PortalCache只是一個接口,具體的實現需要根據不同的緩存機制來編寫實現,比如Ehcache.
2、從緩存中讀取 MultiVMPoolUtil.get(cache, key)
具體請參見Liferay源碼。