真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于OSCache的應用(三)

在實際應用中除了JSP標簽庫,還可以使用OSCache提供的Java API .下面我來介紹一個實用的Java類

成都創(chuàng)新互聯(lián)公司服務項目包括錦屏網(wǎng)站建設、錦屏網(wǎng)站制作、錦屏網(wǎng)頁制作以及錦屏網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,錦屏網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到錦屏省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

[@more@]

在實際應用中除了JSP標簽庫,還可以使用OSCache提供的Java API .下面我來介紹一個實用的Java類 ,使用GeneralCacheAdministrator來建立,刷新和管理緩存.
應用OSCache Java API的一般步驟:
1 建立一個**Bean的緩存類**Cache.
2 import com.opensymphony.oscache.general.*;import com.opensymphony.oscache.base.*;
3 建立一個**DAO類以便操作數(shù)據(jù)庫(也可將上兩項的內(nèi)容直接合并到這里).
4 在**Cache類里生成一個GeneralCacheAdministrator的實例admin用來管理緩存.
GeneralCacheAdministrator admin = new GeneralCacheAdministrator();
5 **Cache中的方法 如.clear(),flush().基本調(diào)用的為OSCache的 Java API.
6 在**Cache添加getBeans()和getBean()方法 以便獲取緩存中的實例對象.具體實現(xiàn)可參照上面的例子.
7 主要用到的GeneralCacheAdministrator的方法有
public Object getFromCache(String key) throws NeedsRefreshException; -- 從緩存中獲取一個key標識的對象.
public Object getFromCache(String key, int refreshPeriod) throws NeedsRefreshException ; -- 從緩存中獲取一個key標識的對象. refreshPeriod刷新周期,標識此對象在緩存中保存的時間(單位:秒)

public void putInCache(String key, Object content) -- 存儲一個由Key標識的緩存對象.
public void putInCache(String key, Object content, String[] groups) -- 存儲一個由Key標識的屬于groups中所有成員的緩存對象.

public void flushEntry(String key) -- 更新一個Key標識的緩存對象.
public void flushGroup(String group) --更新一組屬于groupr標識的所有緩存對象.
public void flushAll() -- 更新所有緩存.

public void cancelUpdate(String key) --- 取消更新 只用于在處理捕獲的NeedsRefreshException異常并嘗試生成新緩存內(nèi)容失效的時候.
public void removeEntry(String key) ---從緩中移除一個key標識的對象
public void clear() --- 清除所有緩存

eg.
------------
///采取補救措施的典型方案

String myKey = "myKey";
String myValue;
int myRefreshPeriod = 1000; //刷新周期1000秒
try {
//從Cache中獲得 要做類型轉(zhuǎn)換
myValue = (String) admin.getFromCache(myKey, myRefreshPeriod);
} catch (NeedsRefreshException nre) {
try {
// Cache中沒有則從庫獲得數(shù)據(jù).
myValue = "This is the content retrieved.";
// 存放在Cache中 鍵值myKey
admin.putInCache(myKey, myValue);
} catch (Exception ex) {
// 嘗試恢復Cache中的內(nèi)容
myValue = (String) nre.getCacheContent();
// 如果Cache中的內(nèi)容沒有復原 則用這個終級方法
admin.cancelUpdate(myKey); //取消對myKey的更新 即類似數(shù)據(jù)回滾
}
}

///不采取補救措施的典型方案

String myKey = "myKey";
String myValue;
int myRefreshPeriod = 1000;
try {
//從Cache中獲得 要做類型轉(zhuǎn)換
myValue = (String) admin.getFromCache(myKey, myRefreshPeriod);
} catch (NeedsRefreshException nre) {
try {
// Cache中沒有則從庫獲得數(shù)據(jù).
myValue = "This is the content retrieved.";
// 存放在Cache中 鍵值myKey
admin.putInCache(myKey, myValue);
updated = true;
} finally {
if (!updated) {
// 如果Cache中的內(nèi)容更新出現(xiàn)異常 則用這個終級方法
admin.cancelUpdate(myKey); //取消對myKey的更新 即類似數(shù)據(jù)回滾
}
}
}

注意:
如果一個NeedsRefreshException出現(xiàn) 必須調(diào)用admin.putInCache或甚至admin.cancelUpdate來避免死鎖情況發(fā)生.
---------------

以上就是OSCache提供的最常用的一個實用Java類.OSCache還提供有很多API 這里只是給大家介紹了一點點的,算是拋磚引玉,在今后的開發(fā)和應用過程中還需要大家一起去研究.


名稱欄目:關(guān)于OSCache的應用(三)
URL網(wǎng)址:http://weahome.cn/article/giidpp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部