大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Spring框架教程
Spring IOC控制反轉
Spring AOP面向切面編程
Spring集成MyBatis
Spring事務
Spring與Web

Spring AOP簡介

AOP(Aspect Orient Programming),面向切面編程,是面向對象編程 OOP 的一種補充。面向對象編程是從靜態角度考慮程序的結構,而面向切面編程是從動態角度考慮程序運行過程。

AOP 底層,就是采用動態代理模式實現的。采用了兩種代理:JDK 的動態代理,與 CGLIB 的動態代理。

AOP 為 Aspect Oriented Programming 的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP 是 OOP 的延續,是軟件開發中的一個熱點,也是 Spring 框架中的一個重要內容。利用 AOP 可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率。

面向切面編程,就是將交叉業務邏輯封裝成切面,利用 AOP 容器的功能將切面織入到主業務邏輯中。所謂交叉業務邏輯是指,通用的、與主業務邏輯無關的代碼,如安全檢查、事務、日志、緩存等。

若不使用 AOP,則會出現代碼糾纏,即交叉業務邏輯與主業務邏輯混合在一起。這樣,會使主業務邏輯變的混雜不清。

例如,轉賬,在真正轉賬業務邏輯前后,需要權限控制、日志記錄、加載事務、結束事務等交叉業務邏輯,而這些業務邏輯與主業務邏輯間并無直接關系。但,它們的代碼量所占比重能達到總代碼量的一半甚至還多。它們的存在,不僅產生了大量的“冗余”代碼,還大大干擾了主業務邏輯---轉賬。

AOP編程術語

● 切面(Aspect)

切面泛指交叉業務邏輯。上例中的事務處理、日志處理就可以理解為切面。常用的切面是通知(Advice)。實際就是對主業務邏輯的一種增強。

● 織入(Weaving)

織入是指將切面代碼插入到目標對象的過程。上例中MyInvocationHandler類中的invoke() 方法完成的工作,就可以稱為織入。

● 連接點(JoinPoint)

連接點指可以被切面織入的具體方法。通常業務接口中的方法均為連接點。

● 切入點(Pointcut)

切入點指聲明的一個或多個連接點的集合。通過切入點指定一組方法。

被標記為 final 的方法是不能作為連接點與切入點的。因為最終的是不能被修改的,不能被增強的。

● 目標對象(Target)

目標對象指將要被增強的對象。即包含主業務邏輯的類的對象。上例中的StudentServiceImpl的對象若被增強,則該類稱為目標類,該類對象稱為目標對象。當然,不被增強,也就無所謂目標不目標了。

● 通知(Advice)

通知是切面的一種實現,可以完成簡單織入功能(織入功能就是在這里完成的)。上例中的 MyInvocationHandler 就可以理解為是一種通知。換個角度來說,通知定義了增強代碼切入到目標代碼的時間點,是目標方法執行之前執行,還是之后執行等。通知類型不同,切入時間不同。 切入點定義切入的位置,通知定義切入的時間。

全部教程
主站蜘蛛池模板: 国产欧美一区二区三区精品 | 情趣视频网站在线观看 | 国产成人免费手机在线观看视频 | 亚洲欧美中文字幕高清在线一 | 中国一级特黄 | 99久久国产综合精品五月天 | 成年女人a毛片免费视频 | 色久优优 欧美色久优优 | 福利视频影院 | 久久精品中文字幕免费 | 久久99精品久久久久久秒播放器 | 香蕉九九 | 国产精品美女视频 | 国产在线一区二区三区欧美 | 四虎影院精品在线观看 | 玖玖国产| 一级毛片片 | 欧美xxxxx毛片 | 女人l8毛片a一级毛片 | 曰本一级毛片免费 | 亚洲国产一区二区三区四区 | 四虎sihu新版影院亚洲精品 | 在线精品亚洲欧洲第一页 | 日本毛片大全 | 99综合在线 | 国产福利网站 | 国内精品久久久久不卡 | 一级毛片免费看 | 久久中文字幕不卡一二区 | 国产在线视频自拍 | 高清人人天天夜夜曰狠狠狠狠 | 最新日本一级中文字幕 | 久久久噜久噜久久gif动图 | 久久这里只精品热免费99 | 秋霞在线观看成人高清视频51 | 成人不卡视频 | 国产成人丝袜网站在线观看 | 日日摸夜夜爽夜夜爽出水 | 日韩在线操| 大伊香蕉在线精品不卡视频 | 久久久久久99精品 |