日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

SpringBoot攔截器和動態(tài)代理有什么區(qū)別?

來源: 責編: 時間:2023-09-18 21:41:12 394觀看
導(dǎo)讀在 Spring Boot 中,攔截器和動態(tài)代理都是用來實現(xiàn)功能增強的,所以在很多時候,有人會認為攔截器的底層是通過動態(tài)代理實現(xiàn)的,所以本文就來盤點一下他們兩的區(qū)別,以及攔截器的底層實現(xiàn)。一、攔截器攔截器(Interceptor)準確來說

在 Spring Boot 中,攔截器和動態(tài)代理都是用來實現(xiàn)功能增強的,所以在很多時候,有人會認為攔截器的底層是通過動態(tài)代理實現(xiàn)的,所以本文就來盤點一下他們兩的區(qū)別,以及攔截器的底層實現(xiàn)。cZg28資訊網(wǎng)——每日最新資訊28at.com

cZg28資訊網(wǎng)——每日最新資訊28at.com

此時用戶登錄權(quán)限的驗證方法就會執(zhí)行,這就是攔截器的執(zhí)行過程。因此,可以得出結(jié)論,攔截器的實現(xiàn)主要是依賴 Servlet 或 Spring 執(zhí)行流程來進行攔截和功能增強的。cZg28資訊網(wǎng)——每日最新資訊28at.com

二、動態(tài)代理

動態(tài)代理是一種設(shè)計模式,它是指在運行時提供代理對象,來擴展目標對象的功能。在 Spring 中的,動態(tài)代理的實現(xiàn)手段有以下兩種:cZg28資訊網(wǎng)——每日最新資訊28at.com

  • JDK 動態(tài)代理:通過反射機制生成代理對象,目標對象必須實現(xiàn)接口。
  • CGLIB 動態(tài)代理:通過生成目標類的子類來實現(xiàn)代理,不要求目標對象實現(xiàn)接口。

動態(tài)代理的主要作用包括:cZg28資訊網(wǎng)——每日最新資訊28at.com

  • 擴展目標對象的功能:如添加日志、驗證參數(shù)等。
  • 控制目標對象的訪問:如進行權(quán)限控制。
  • 延遲加載目標對象:在需要時才實例化目標對象。
  • 遠程代理:將請求轉(zhuǎn)發(fā)到遠程的目標對象上。

三、攔截器 VS 動態(tài)代理

因此,我們可以得出結(jié)論,攔截器和動態(tài)代理雖然都是用來實現(xiàn)功能增強的,但二者完全不同,他們的主要區(qū)別體現(xiàn)在以下幾點:cZg28資訊網(wǎng)——每日最新資訊28at.com

  • 使用范圍不同:攔截器通常用于 Spring MVC 中,主要用于攔截 Controller 請求。動態(tài)代理可以使用在 Bean 中,主要用于提供 bean 的代理對象,實現(xiàn)對 bean 方法的攔截。
  • 實現(xiàn)原理不同:攔截器是通過 HandlerInterceptor 接口來實現(xiàn)的,主要是通過 afterCompletion、postHandle、preHandle 這三個方法在請求前后進行攔截處理。動態(tài)代理主要有 JDK 動態(tài)代理和 CGLIB 動態(tài)代理,JDK 通過反射生成代理類;CGLIB 通過生成被代理類的子類來實現(xiàn)代理。
  • 加入時機不同:攔截器是在運行階段動態(tài)加入的;動態(tài)代理是在編譯期或運行期生成的代理類。
  • 使用難易程度不同:攔截器相對簡單,通過實現(xiàn)接口即可使用。動態(tài)代理稍微復(fù)雜,需要了解動態(tài)代理的實現(xiàn)原理,然后通過相應(yīng)的 api 實現(xiàn)。

小結(jié)

在 Spring Boot 中,攔截器和動態(tài)代理都是用來實現(xiàn)功能增強的,但二者沒有任何關(guān)聯(lián)關(guān)系,它的區(qū)別主要體現(xiàn)在使用范圍、實現(xiàn)原理、加入時機和使用的難易程度都是不同的cZg28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-10448-0.htmlSpringBoot攔截器和動態(tài)代理有什么區(qū)別?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: WPF依賴屬性介紹和用法舉例

下一篇: Go并發(fā)可視化解釋 – select語句

標簽:
  • 熱門焦點
  • MIX Fold3包裝盒泄露 新機本月登場

    小米的全新折疊屏旗艦MIX Fold3將于本月發(fā)布,近日該機的真機包裝盒在網(wǎng)上泄露。從圖上來看,新的MIX Fold3包裝盒在外觀設(shè)計方面延續(xù)了之前的方案,變化不大,這也是目前小米旗艦
  • 盧偉冰長文解析K60至尊版 對Redmi有著里程碑式的意義

    在今天的Redmi后性能時代戰(zhàn)略發(fā)布會結(jié)束之后,Redmi總經(jīng)理盧偉冰又帶來了一篇長文,詳解了為什么 Redmi 要開啟后性能時代?為什么選擇和 MediaTek、Pixelworks 深度合作?以及后性
  • 7月安卓手機性價比榜:努比亞+紅魔兩款新機入榜

    7月登場的新機有努比亞Z50S Pro和紅魔8S Pro,除了三星之外目前唯二的兩款搭載超頻版驍龍8Gen2處理器的產(chǎn)品,而且努比亞和紅魔也一貫有著不錯的性價比,所以在本次的性價比榜單
  • 如何使用JavaScript創(chuàng)建一只圖像放大鏡?

    譯者 | 布加迪審校 | 重樓如果您曾經(jīng)瀏覽過購物網(wǎng)站,可能遇到過圖像放大功能。它可以讓您放大圖像的特定區(qū)域,以便瀏覽。結(jié)合這個小小的重要功能可以大大改善您網(wǎng)站的用戶體驗
  • 三萬字盤點 Spring 九大核心基礎(chǔ)功能

    大家好,我是三友~~今天來跟大家聊一聊Spring的9大核心基礎(chǔ)功能。話不多說,先上目錄:圖片友情提示,本文過長,建議收藏,嘿嘿嘿!一、資源管理資源管理是Spring的一個核心的基礎(chǔ)功能,不
  • 阿里瓴羊One推出背后,零售企業(yè)迎數(shù)字化新解

    作者:劉曠近年來隨著數(shù)字經(jīng)濟的高速發(fā)展,各式各樣的SaaS應(yīng)用服務(wù)更是層出不窮,但本質(zhì)上SaaS大多局限于單一業(yè)務(wù)流層面,對用戶核心關(guān)切的增長問題等則沒有提供更好的解法。在Saa
  • 2022爆款:ROG魔霸6 冰川散熱系統(tǒng)持續(xù)護航

    喜逢開學(xué)季,各大商家開始推出自己的新產(chǎn)品,進行打折促銷活動。對于忠實的端游愛好者來說,能夠擁有一款夢寐以求的筆記本電腦是一件十分開心的事。但是現(xiàn)在的
  • SN570 NVMe SSD固態(tài)硬盤 價格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術(shù)更為精進,性能也得到了進一步的躍升。WD Blue SN570 NVMe SSD的包裝外
  • 由于成本持續(xù)增加,筆記本產(chǎn)品價格預(yù)計將明顯上漲

    根據(jù)知情人士透露,由于材料、物流等成本持續(xù)增加,筆記本產(chǎn)品價格預(yù)計將在2021年下半年有明顯上漲。進入6月下旬以來,全球半導(dǎo)體芯片缺貨情況加劇,顯卡、處理器
Top 主站蜘蛛池模板: 交城县| 英吉沙县| 宝清县| 思茅市| 福海县| 延川县| 越西县| 青州市| 定安县| 吉首市| 宣武区| 咸阳市| 砀山县| 五家渠市| 灵石县| 定边县| 辽宁省| 南江县| 泸水县| 沙坪坝区| 长武县| 隆林| 天气| 榆社县| 安西县| 陕西省| 沙雅县| 吉木萨尔县| 天气| 长宁县| 武汉市| 托克托县| 台北县| 嵩明县| 招远市| 桑日县| 百色市| 卢湾区| 桂阳县| 搜索| 阜城县|