欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

在實(shí)際應(yīng)用中除了JSP標(biāo)簽庫,還可以使用OSCache提供的Java API .下面我來介紹一個(gè)實(shí)用的Java類

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

[@more@]

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

public void putInCache(String key, Object content) -- 存儲(chǔ)一個(gè)由Key標(biāo)識(shí)的緩存對(duì)象.
public void putInCache(String key, Object content, String[] groups) -- 存儲(chǔ)一個(gè)由Key標(biāo)識(shí)的屬于groups中所有成員的緩存對(duì)象.

public void flushEntry(String key) -- 更新一個(gè)Key標(biāo)識(shí)的緩存對(duì)象.
public void flushGroup(String group) --更新一組屬于groupr標(biāo)識(shí)的所有緩存對(duì)象.
public void flushAll() -- 更新所有緩存.

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

eg.
------------
///采取補(bǔ)救措施的典型方案

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) {
// 嘗試恢復(fù)Cache中的內(nèi)容
myValue = (String) nre.getCacheContent();
// 如果Cache中的內(nèi)容沒有復(fù)原 則用這個(gè)終級(jí)方法
admin.cancelUpdate(myKey); //取消對(duì)myKey的更新 即類似數(shù)據(jù)回滾
}
}

///不采取補(bǔ)救措施的典型方案

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)異常 則用這個(gè)終級(jí)方法
admin.cancelUpdate(myKey); //取消對(duì)myKey的更新 即類似數(shù)據(jù)回滾
}
}
}

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

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

新聞名稱:關(guān)于OSCache的應(yīng)用(三)
瀏覽路徑:http://chinadenli.net/article38/giidpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、微信公眾號(hào)電子商務(wù)、定制網(wǎng)站域名注冊、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)