一個程序猿在夢中解決的 Bug
沒有人是不做夢的,在所有夢的排行中,白日夢最令人傷感。不知道身為程序猿的大家,有沒有睡了一覺,然后在夢中把睡之前代碼中怎么也搞不定的 Bug 給解決的經(jīng)歷?反正我是有過。
什么是 AOP ?
AOP 為 Aspect Oriented Programming 的縮寫,意為:面向切面編程,通過預(yù)編譯方式和運行期動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護的一種技術(shù)。AOP 是 OOP 的延續(xù),是軟件開發(fā)中的一個熱點,也是 Spring 框架中的一個重要內(nèi)容,是函數(shù)式編程的一種衍生范型。利用 AOP 可以對業(yè)務(wù)邏輯的各個部分進行隔離,從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發(fā)的效率。
以上內(nèi)容引用自百度百科
翻譯為人能聽懂的話來說就是: AOP 可以理解為在方法執(zhí)行前后可以去完成相同的業(yè)務(wù)邏輯,而不需要你去改業(yè)務(wù)代碼。舉個例子吧:現(xiàn)在有一個需求,要在項目中的每一個方法前面都輸出一句:開始執(zhí)行啦! 需求很明確了,常規(guī)的解決方式就是在每個具體的方法最前面加一句system.out.print("開始執(zhí)行啦!");
,冒出這個想法的程序員是普通程序猿,當(dāng)然,這是開個玩笑啦!這樣的代碼,如果一兩個方法用這樣的方式?jīng)]有任何問題完全可行,如果幾十個、幾百個這樣的方法呢?
這時候,我們就可以使用 AOP 來完成以上邏輯了,不需要改動任何一個方法,無侵入的方式來完成這個需求。
AOP 在實際項目中運用的場景主要有權(quán)限管理(Authority