ABP理論學習之快取Caching

2022-01-19 17:28:44 字數 1584 閱讀 4902

返回總目錄

abp提供了快取的抽象,它內部使用了這個快取抽象。雖然預設的實現使用了memorycache,但是也可以為其他的快取提供者進行實現和改變。

快取的主要介面是icachemanager。我們可以注入該介面,然後使用該介面獲得乙個快取物件。例如:

public item getitem(int id)

public item getfromdatabase(int id)

}在這個例子中,我們注入了icachemanager,並獲取了乙個叫做mycache的快取物件。

警告:getcache方法

不要在建構函式中使用getcache方法。如果你的類是transient(每次使用都會建立)的,那麼這可能會釋放快取,因為第二次建立類的物件時,會再次呼叫建構函式,之前的第一次的快取可能會被釋放。

icachemanager.getcache方法返回乙個icache。快取物件是單例的,第一次請求時會建立快取,以後都是返回相同的快取物件。因此,我們可以在不同的類(客戶端)中共享具有相同名字的相同快取。

在樣例**中,我們看到了icache.get方法的簡單使用。它有兩個引數:

icache介面也有像getordefault,set,remove,clear的方法。同時,這些方法也有非同步(async)版本。

icache介面的key為string型別,value為object型別。itypecache是icache的包裝器,提供型別安全、泛型的cache。為了將icache轉為itypedcache,我們可以使用astyped擴充套件方法,如下所示:

itypedcachemycache = _cachemanager.getcache("mycache").astyped();
這樣,我們不需要轉換就可以使用get方法。

預設的快取有效期是60min。因此,如果你在60min內都沒有使用快取中的元素,那麼它會自動從快取中移除。對於所有的快取或者特定的某個快取,你都可以配置有效期。

//為所有快取配置有效期

configuration.caching.configureall(cache =>

);//為特定的快取配置有效期

configuration.caching.configure("mycache", cache =>

);

這些**應該放到模組中的preinitialize方法中。有了這樣的配置,mycache會有8小時的有效期,而其他cache會有2小時有效期。

一旦cache首次建立(第一次請求時),就會呼叫配置的action。配置並不只侷限於defaultslidingexpiretime(預設滾動有效期),因為cache物件是乙個icache,你可以使用它的屬性和方法自由地配置並初始化。

ABP理論學習之Abp Session

返回總目錄 當應用程式要求使用者登入時,那麼應用程式也需要知道當前使用者正在執行的操作。雖然asp.net本身在展現層提供了session物件,但abp也提供了在任何需要獲得當前使用者和租戶的地方都可以使用的iabpsession介面。關於iabpsession 為了獲得實際的session資訊,必...

ABP理論學習之開篇介紹

返回總目錄 為了和2016年春節賽跑,完成該系列部落格,我犧牲了今天中午的時間來完成該系列的第一篇 開篇介紹。開篇介紹嘛,讀過大學教材的同學都知道,這玩意總是那麼無聊,跟考試沒關係,乾脆直接跳過,呵呵,多麼美好的大學時光啊!不過,現在想想,開篇介紹確實不怎麼重要,它只是告訴我們今後我要開始講什麼了,...

ABP理論學習之Nuget包

返回總目錄 abp已經發布在nuget上,這裡是所有包的列表。abp abp系統的核心包。所有其他的包都依賴這個包。abp.web 提供了mvc和web api都使用的一些通用類和資源 abp.web.resource web層的資源 js,css.檔案 abp.web.mvc 提供一些asp.ne...