91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于OSCache的應用(三)

發布時間:2020-08-05 10:01:53 來源:ITPUB博客 閱讀:178 作者:94nidaye 欄目:編程語言

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

[@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類以便操作數據庫(也可將上兩項的內容直接合并到這里).
4 在**Cache類里生成一個GeneralCacheAdministrator的實例admin用來管理緩存.
GeneralCacheAdministrator admin = new GeneralCacheAdministrator();
5 **Cache中的方法 如.clear(),flush().基本調用的為OSCache的 Java API.
6 在**Cache添加getBeans()和getBean()方法 以便獲取緩存中的實例對象.具體實現可參照上面的例子.
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異常并嘗試生成新緩存內容失效的時候.
public void removeEntry(String key) ---從緩中移除一個key標識的對象
public void clear() --- 清除所有緩存

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

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

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

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

注意:
如果一個NeedsRefreshException出現 必須調用admin.putInCache或甚至admin.cancelUpdate來避免死鎖情況發生.
---------------

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屯门区| 丰县| 黑龙江省| 仲巴县| 安达市| 常宁市| 咸丰县| 新津县| 龙门县| 阜南县| 曲沃县| 大荔县| 德钦县| 荣昌县| 宁化县| 华坪县| 克东县| 施秉县| 普兰店市| 福泉市| 建平县| 阿图什市| 梅河口市| 孝感市| 盐山县| 伊金霍洛旗| 旬阳县| 卢龙县| 司法| 莎车县| 马公市| 元江| 瓦房店市| 巴彦县| 瑞丽市| 木里| 百色市| 揭东县| 富裕县| 拜城县| 兴国县|