2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

AOP是什么?為什么要使用AOP

更新時間:2021-05-25 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif

AOP的全稱是Aspect-Oriented Programming,即面向切面編程(也稱面向方面編程)。它是面向對象編程(OOP)的一種補充,目前已成為一種比較成熟的編程方式。

在傳統的業務處理代碼中,通常都會進行事務處理、日志記錄等操作。雖然使用OOP可以通過組合或者繼承的方式來達到代碼的重用,但如果要實現某個功能(如日志記錄),同樣的代碼仍然會分散到各個方法中。這樣,如果想要關閉某個功能,或者對其進行修改,就必須要修改所有的相關方法。這不但增加了開發人員的工作量,而且提高了代碼的出錯率。

為了解決這一問題,AOP思想隨之產生。AOP采取橫向抽取機制,將分散在各個方法中的重復代碼提取出來,然后在程序編譯或運行時,再將這些提取出來的代碼應用到需要執行的地方。這種采用橫向抽取機制的方式,采用傳統的OOP思想顯然是無法辦到的,因為OOP只能實現父子關系的縱向的重用。雖然AOP是一種新的編程思想,但卻不是OOP的替代品,它只是OOP的延伸和補充。

在AOP思想中,類與切面的關系如圖1所示。

AOP是什么

圖1 類與切面的關系

從圖1可以看出,通過Aspect(切面)分別在Class1和Class2的方法中加入了事務、日志、權限和異常等功能。

AOP的使用,使開發人員在編寫業務邏輯時可以專心于核心業務,而不用過多的關注于其他業務邏輯的實現,這不但提高了開發效率,而且增強了代碼的可維護性。

目前最流行的AOP框架有兩個,分別為Spring AOP和AspectJ。Spring AOP使用純Java實現,不需要專門的編譯過程和類加載器,在運行期間通過代理方式向目標類織入增強的代碼。AspectJ是一個基于Java語言的AOP框架,從Spring2.0開始,Spring AOP引入了對AspectJ的支持,AspectJ擴展了Java語言,提供了一個專門的編譯器,在編譯時提供橫向代碼的織入。








猜你喜歡:

IOC和AOP分別是什么?如何理解?

Spring MVC框架是什么?有什么特點?

Spring eureka是什么?有什么作用?

Spring Boot如何定義多套不同的環境配置?

黑馬程序員Java培訓培訓

分享到:
在線咨詢 我要報名
和我們在線交談!