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

溫馨提示×

溫馨提示×

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

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

mybatis中如何使用plugin插件

發布時間:2021-07-30 15:15:17 來源:億速云 閱讀:378 作者:Leah 欄目:大數據

這期內容當中小編將會給大家帶來有關mybatis中如何使用plugin插件,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

mybatis插件

mybatis源碼寫的極好,mybatis屬于相對輕量級的orm框架,包含的功能并沒有太多,較容易感受它的設計之美,所以用博客的方式進行記錄;


mybatis插件在四處有使用到:mybatis中如何使用plugin插件

  1. 對sql入參 prameterHandler進行插件化處理

  2. 對sql出參result進行插件化處理

  3. 對stamentHandler進行插件化處理

  4. 對executor進行插件化處理;


mybatis的插件與平時所熟知的攔截器和過濾器類似,但設計并不相同,譬如:

  1. springmvc的HandlerInterceptor接口:攔截器實現類功能比較單一,并不參與調用鏈的調度,比較簡單的一組接口的實現類;

  2. 過濾器:- 責任鏈模式,每個filter處理的時候入參中有chain對象,在執行完filter中的before后將控制權再交回給chain,由chain進行調度下一個before;然后調用鏈如圖: mybatis中如何使用plugin插件


  • mybatis中的插件實現了Interceptor接口,其實現的方式屬于裝飾器模式; mybatis中如何使用plugin插件

  • 將執行插件的target交給插件,插件返回一個代理對象;將該代理對象傳給下一個插件,進行裝飾

    mybatis中如何使用plugin插件

  • 引入Plugin對象,將target和插件this傳給Plugin


  • 對target進行包裝,將插件功能包裝在代理對象中 mybatis中如何使用plugin插件

  • 對target進行包裝,通過cglib對target進行代理;

  • 傳入的InvocationHandler是Plugin本身; mybatis中如何使用plugin插件

  • 當調用target方法時,進入Plugin中的invoke方法; mybatis中如何使用plugin插件

  • 這時才真正的對target方法有選擇性的調用攔截器;

  • 而攔截器中的實現只需要關注攔截邏輯的處理,因為target中的方法調用交給Invocation對象中調用;

    mybatis中如何使用plugin插件

mybatis設計的插件,可以通過注解的方式指定某個類的某個方法進行攔截;這樣的設計方式通過注解可以無侵入式的對目標類進行代理,同時可以針對同一個類進行多次代理;非常靈活

單拿出mybatis中的插件進行表述的原因是,感覺設計的還是很有意思的;擴展性很好,同時有別于其它的攔截器和過濾器的實現;

上述就是小編為大家分享的mybatis中如何使用plugin插件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

兴仁县| 汉源县| 奉节县| 襄汾县| 昆山市| 鸡西市| 东城区| 渭源县| 哈密市| 万州区| 灵川县| 盖州市| 浠水县| 嘉义县| 仙游县| 当雄县| 灯塔市| 阜新市| 潍坊市| 深圳市| 宾川县| 白山市| 日照市| 洪湖市| 郓城县| 綦江县| 武汉市| 长丰县| 阳谷县| 连江县| 柯坪县| 航空| 离岛区| 乳源| 益阳市| 资中县| 潢川县| 北安市| 文山县| 尤溪县| 皮山县|