SPRING AOP
1.背景介紹
Spring
Spring框架由Rod Johnson開發(fā)垒迂,2004年發(fā)布了Spring框架的第一版颠放。Spring是一個(gè)從實(shí)際開發(fā)中抽取出來的框架峻呕,因此它完成了大量開發(fā)中的通用步驟糜烹,留給開發(fā)者的僅僅是與特定應(yīng)用相關(guān)的部分娶靡,從而大大提高了企業(yè)應(yīng)用的開發(fā)效率
2.知識剖析
Spring最重要的兩個(gè)模塊
IoC(Inversion of Control,控制反轉(zhuǎn)),通常也認(rèn)為是依賴注入(DI)
AOP(Aspect Oriented Programming,面向切面編程)
what?
到底什么是AOP?
Aspect Oriented Programming(面向切面編程)
可以通過預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)在不修改源代碼的情況下給程序動(dòng)態(tài)統(tǒng)一添加功能的一種技術(shù). 它是一種編程思想,并不是spring特有的.
對比一下AOP和OOP
OOP主要通過抽取對象行為屬性來完成從上到下的業(yè)務(wù)實(shí)現(xiàn)
AOP主要通過添加橫切面將共同的事物從業(yè)務(wù)中抽取出來
why?
將日志記錄茎芭,性能統(tǒng)計(jì)揖膜,安全控制,事務(wù)處理梅桩,異常處理等代碼從業(yè)務(wù)邏輯代碼中劃分出來壹粟,通過對這些行為的分離,我們希望可以將它們獨(dú)立到非指導(dǎo)業(yè)務(wù)邏輯的方法中宿百,進(jìn)而改變這些行為的時(shí)候不影響業(yè)務(wù)邏輯的代碼趁仙。
3.擴(kuò)展思考
動(dòng)態(tài)代理是如何實(shí)現(xiàn)的?