内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

SpringAOP與代理的概念與使用方法-創(chuàng)新互聯(lián)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)Spring AOP 與代理的概念與使用方法,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站服務項目包括沿河網(wǎng)站建設、沿河網(wǎng)站制作、沿河網(wǎng)頁制作以及沿河網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,沿河網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到沿河省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

一、AOP 的基本概念

1.1 什么是 AOP

Aspect Oriented Programming,面向切面編程。

就跟我們說 OOP 是面向?qū)ο笠粯?,AOP 是面向切面的。切面是分散在應用中的一個標準代碼或功能。切面通常與實際的業(yè)務邏輯不同(例如,事務管理)。每個切面專注于一個特定的環(huán)切功能。

這里的切面呢,可以理解為橫切。比如在所有的 DAO 層方法上加上一個同樣的切面,功能是記錄日志;又或者在某個接口上應用一個切面,作用是檢查權(quán)限。

AOP 是基于代理來實現(xiàn)的。而代理又分為靜態(tài)代理和動態(tài)代理。兩者的區(qū)別在于代理類于何時生成。

下面我們講講代理是怎么回事?

1.2 代理與 Spring AOP

代理分為靜態(tài)代理和動態(tài)代理:

  • 靜態(tài)代理:代理類在編譯階段生成,程序運行前就存在。包括:AspectJ 靜態(tài)代理、JDK 靜態(tài)代理
  • 動態(tài)代理:代理類在程序運行時創(chuàng)建。包括:JDK 動態(tài)代理、CGLib 動態(tài)代理

Spring AOP 原理:

  • JDK Proxy:interface based
  • CGLib Proxy: class based

Spring AOP 與代理的概念與使用方法

Spring AOP 中默認使用 JDK 動態(tài)代理,通過反射獲取被代理的類,這個類必須實現(xiàn)一個接口。如果目標類沒有實現(xiàn)接口,就會默認使用 CGLIB Proxy 來動態(tài)生成代理目標類,后者是被代理類的子類。

可以通過獲取代理對象并打印的方式來查看其類型(JDK Proxy 下是 com.sun.prxy, CGlib 下是子類.

AspectJ: 用特定的編譯器和語法,在編譯時增強,實現(xiàn)了靜態(tài)代理技術(shù)。

1.3 Spring AOP 與 AspectJ 的區(qū)別

AspectJ 是一套完整的 AOP 解決方案,而 Spring AOP 并不是 —— 它只是在 Spring 框架下滿足其使用要求的一個解決方法,比如 Spring AOP 僅支持對方法使用切面。

二、靜態(tài)代理

2.1 AspectJ 靜態(tài)代理

基于特殊的編譯器和語法。這里不多介紹了。

IDEA 下編譯 AspectJ 可以參考這篇:https://blog.csdn.net/gavin_john/article/details/80156963

2.2 JDK 靜態(tài)代理

實際上是利用實現(xiàn)一個具體的代理類來調(diào)用業(yè)務類。代理類持有了一個業(yè)務類的引用。

更概況地說,JDK 靜態(tài)代理體現(xiàn)的是一種設計模式。

缺點很明顯,代碼冗余,難以維護。

這里以 借書 和 還書 這兩個行為來作為一個示例:

編寫一個 BookService 接口:

public interface BookService {

    boolean borrow(String id, String userName);

    boolean reBack(String id, String userName);
}

網(wǎng)頁名稱:SpringAOP與代理的概念與使用方法-創(chuàng)新互聯(lián)
URL分享:http://m.rwnh.cn/article28/cesejp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、網(wǎng)站內(nèi)鏈ChatGPT、動態(tài)網(wǎng)站、虛擬主機、手機網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設
林周县| 渝中区| 淅川县| 清丰县| 建昌县| 郸城县| 辽宁省| 新兴县| 娱乐| 启东市| 邓州市| 天台县| 上饶市| 新龙县| 三江| 绥德县| 和顺县| 始兴县| 大宁县| 孙吴县| 乌拉特后旗| 木里| 陆川县| 嵩明县| 兰州市| 永安市| 怀柔区| 淮阳县| 澄江县| 根河市| 河曲县| 重庆市| 东海县| 娱乐| 和田市| 永昌县| 保山市| 双峰县| 南城县| 高要市| 安仁县|