国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

對Spring aop的理解

2019-11-14 22:16:44
字體:
來源:轉載
供稿:網友
對SPRing aop的理解

  記得有次面試中面試官問到,跟我談談spring aop,當時我就悶了,當時腦海里只浮現出切入點、切面、引入、通知等等一些很模糊的概念,于是結果可想而知。所以最近用下心來為自己做下記錄方便以后查看(為以后的面試做好準備,呵呵),如果以下有什么疏忽的地方或者寫的不好的地方,還請發現者多多指導。

  什么是AOP

  AOP(aspect-OrientedProgramming),也就是面向切面編程。也可以這樣理解,學java的應該都知道面向對象編程(oop),而OOP是從靜態解讀考慮程序結構,但AOP是從動態角度考慮程序運行過程。也可以說AOP是OOP的補充和完善。OOP引入了封裝、繼承和多態性等概念來建立一種對象層次結構, 用以模擬公共的一個集合。當我們需要為分散的對象引入公共行為的時候,則OOP顯得無能為力了。也就是說,OOP允許你定義從上到下的關系,但并不適合從左到右的關系,例如日志功能。日志代碼往往水平的散步在所有對象層次中,而與它所散步到的對象的核心功能毫無關系。對于其他類型的代碼,如安全性、異常處理和透明的持續性也是如此。這種散布在各處的無關的代碼被稱為橫切代碼,在oop設計中,他導致了大量代碼的重復,而不利于各個模塊的重用。

  而AOP技術則恰恰相反,它利用一種稱為“橫切”的技術,剖解開封裝的對象內部,并將哪些影響了多個類的公共行為封裝到一個可重用模塊,并將其名為'Aspect',及方面。 所謂"方面",簡單的來說就是將那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來。便于減少系統的重復代碼,降低模塊間的耦合度等。

  實現AOP的技術,主要分為兩大類:一是采用動態代理技術,利用截取信息的方式,對該信息進行裝飾,以取代魚油對象行為的執行;二是采用靜態織入的方式,引入特定的語法創建“方面”,從而使得編譯器可以在編譯期間織入有關“方面”的代碼。

AOP的相關概念

  方面:一個關注點的模塊化,這個關注點實現可能另外橫切多個對象。事物管理是J2EE應用中一個很好的很橫切關注點例子。

  連接點:程序執行過程中明確的點,如方法的調用或特定的異常被拋出。

  通知:在特定的連接點上AOP框架執行的動作。Spring中定義了四個advice: BeforeAdvice, AfterAdvice, ThrowAdvice和DynamicIntroductionAdvice

  切入點:指定一個通知將被引發的一系列連接點的集合。

  引入:添加方法或字段到被通知的類。

  目標對象:含連接點的對象。pojo

  AOP代理(AOP Proxy): AOP框架創建的對象,包含通知。

  織入(Weaving): 組裝方面來創建一個被通知對象。

AOP配置

  這個可以參考其他地方的寫法,這里就不多敘述了。

參考文章地址:http://blog.csdn.net/moreevan/article/details/11977115


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌审旗| 张家川| 台山市| 迭部县| 玛纳斯县| 邻水| 中阳县| 郓城县| 凤翔县| 冀州市| 历史| 永寿县| 平远县| 厦门市| 盱眙县| 依安县| 武川县| 江津市| 根河市| 屯昌县| 崇文区| 瑞金市| 年辖:市辖区| 鄂尔多斯市| 绥中县| 双牌县| 宜宾县| 洱源县| 周口市| 沁阳市| 漳州市| 皋兰县| 都匀市| 定陶县| 孟连| 三江| 邵阳县| 同心县| 绿春县| 陵水| 泾川县|