Mybatis日誌模組之介面卡模式

2021-10-05 10:41:26 字數 913 閱讀 9237

1.mybatis沒有提供日誌的實現類,需要使用第三方日誌元件,需要接入不同的日誌元件,但是各自的日誌元件都有自己的log級別,各不相同。mybatis的日誌級別分別為trace、warn、dubug、erro。

2.自動掃瞄日誌實現,按照一定的順序優先載入第三方日誌,順序分別為slf4j->commonsloging->log4j2->log4j->jdklog.

3.日誌要優雅的嵌入到主體中。

適用場景,當呼叫雙方都不太容易修改的時候,為了復用現有的元件,可以使用介面卡模式,在系統中接入第三發元件的時候經常被使用到。

mybati日誌模組是怎麼使用介面卡模組呢?

1.target:根據目標角色期待得到的介面,org.apache.ibatis.logging.log 介面,對內提供了統一的日誌介面;

2.adaptee:適配角色,被適配的介面。例如slf4j 、commonsloging 、log4j2等,它們被包含在適配角色中。

3.adapter:介面卡角色,將源介面轉成目標介面。例如slf4jloggerimpl、jdk14loggingimpl、log4jimpl。

總結日誌模組的實現採用介面卡模式,日誌的元件、介面卡以及統一的log介面,定義清晰明確,符合單一原則,同時客戶端在呼叫日誌的時候是面向log介面程式設計,不需要關心底層的實現,符合依賴倒轉原則。當有其他第三方元件的加入的時候,只需要新增模組滿足需求,不需要修改原有的**,符合開閉原則

介面卡模式 日誌介面卡

在寫 策略模式 的時候,筆者就用 日誌 舉了例子,這篇文章還是要以日誌為例。日誌的重要性筆者這裡不再多言了,大家在系統開發中記錄日誌的時候,有沒有考慮過這樣乙個問題 萬一使用的日誌框架要更換呢?一旦更換你需要怎麼做?修改所有的 替換logger類嗎?如果這麼做的話,不管是對系統,還是對開發者來說,都...

介面卡模式 預設介面卡,類介面卡,物件介面卡

模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...