spring AOP的用處
傳統上, 程序的結構是靜態的. 定義了一個類, 它的成員變量和成員函數就是確定的了,定義了一個函數, 它的具體實現也是確定的.
傳統程序設計主要定義了一些固化的規則來規范這些確定性組分的組合關系,如類繼承體系所表達的推理關系. 而AOP是一種動態代碼織入技術
AOP就像是一把鋒利的砍刀, 我們用它從最終所期望的程序結構中隨意的砍下一部分來, 起個名字,就叫Aspect吧. 實際上AOP技術本身并沒有限定程序中哪些部分可以作為Aspect, 這種技術本身并不保證你可以抽象得出真正有價值的Aspect, 它只是一種純粹的程序結構操縱技術而已.
\
類似于 \○
←□→
11\
\
一個人被從身體的中間這么喀嚓一下下,成了一個切面;這個切面可不是固定的;再哪個部位都能喀嚓那么一下;并且這個切面就有了一個名字叫做“aspect”
我們可以對這個切面進行統一的管理,集中的權限控制,看看誰能夠摸一下這砍完后,這個血淋淋的一個切面;
對砍完后的每個切面分別控制,然后最后組合起來;
通過切面,我們可以將系統中各個不同層次上的問題隔離開來,實現統一集約式處理。各切面只需集中于自己領域內的邏輯實現(這句話不能理解)。這一方面使得開發邏輯更加清晰,專業化分工更加易于進行;另一方面,由于切面的隔離,降低了耦合性,我們就可以在不同的應用中將各個切面組合使用,從而使得代碼可重用性大大增強
AOP就像是一把鋒利的砍刀, 我們用它從最終所期望的程序結構中隨意的砍下一部分來, 起個名字,就叫Aspect吧. 實際上AOP技術本身并沒有限定程序中哪些部分可以作為Aspect, 這種技術本身并不保證你可以抽象得出真正有價值的Aspect, 它只是一種純粹的程序結構操縱技術而已.
\
類似于 \○
←□→
11\
\
一個人被從身體的中間這么喀嚓一下下,成了一個切面;這個切面可不是固定的;再哪個部位都能喀嚓那么一下;并且這個切面就有了一個名字叫做“aspect”
我們可以對這個切面進行統一的管理,集中的權限控制,看看誰能夠摸一下這砍完后,這個血淋淋的一個切面;
對砍完后的每個切面分別控制,然后最后組合起來;
通過切面,我們可以將系統中各個不同層次上的問題隔離開來,實現統一集約式處理。各切面只需集中于自己領域內的邏輯實現(這句話不能理解)。這一方面使得開發邏輯更加清晰,專業化分工更加易于進行;另一方面,由于切面的隔離,降低了耦合性,我們就可以在不同的應用中將各個切面組合使用,從而使得代碼可重用性大大增強