OSCache CacheFilter工作原理

2021-08-25 04:27:18 字數 1186 閱讀 6525

[color=darkblue][b]系統啟動 – cachefilter[/b][/color]

oscache頁面快取在使用時需要在web.xml中配置cachefilter,在容器中,filter先於servlet啟動,下面看看cachefilter在容器啟動時,做了哪些工作:

首先需要了解oscache的幾個類:

[color=indigo]servletcacheadministrator[/color] -- 該類用於建立、重新整理、管理快取。

[color=indigo]config[/color] -- 負責獲取快取配置檔案,即oscache.properties。如果使用預設的建構函式,這個類會從properties檔案中載入快取配置。

[color=indigo]cache[/color] -- 為快取本身提供乙個介面。這個類的例項會根據它的構造引數建立乙個快取。

從以上可以看出,oscache隨系統啟動,僅僅做了三個步驟:

1. 建立了乙個servletcacheadministrator物件;

2. 獲取web.xml配置檔案中重新整理時間

3. 獲取web.xml配置檔案中重新整理範圍

在建立servletcacheadministrator物件時,oscache進行了如下工作:

servletcacheadministrator的建構函式:

private servletcacheadministrator(servletcontext context, properties p)

通過以上方法,在servletcontext上下文中,設定了如下屬性:

context.setattribute(cache_administrator_key, admin);

將建立的servletcacheadministrator物件放入名為__oscache_admin的屬性

context.setattribute(getcachekey(), cache);

將建立的cache物件放入名為__oscache_cache的屬性

[b][color=darkblue]快取頁面首次開啟與重新整理 – dofilter[/color][/b]

首先需要了解oscache的幾個類:

responsecontent:在快取中用byte陣列形式保留servlet響應物件。

Read Write spinlock工作原理

1 假設臨界區內沒有任何的thread,這時候任何read thread或者write thread可以進入,但是只能是其一。2 假設臨界區內有乙個read thread,這時候新來的read thread可以任意進入,但是write thread不可以進入 3 假設臨界區內有乙個write thr...

SpringCloud Eureka工作原理

eureka 作為 spring cloud 體系中最核心 預設的註冊中心元件,研究它的執行機制,有助於我們在工作中更好地使用它。eureka 註冊中心 包含兩個元件 eureka server和eureka client。服務提供者和服務的消費者。eureka負責管理 記錄服務提供者的資訊。服務呼...

selenium webdriver工作原理

1 啟動瀏覽器,selenium webdriver會將目標瀏覽器繫結帶特定的埠,啟動後的瀏覽器則作為webdriver的remote server 服務端 2 客戶端 也就是測試指令碼 傳送http請求給server端。通訊協議 the webdriver wire protocol,在http請...