IOC:即控制反轉,主要意思就是Spring容器來管理對象的初始化,而不需要程式員人工的使用new方式來創建對象,並且當A對象依賴於B對象時,在配置文件中可以指定,同樣不需要程式員在構造函數或是setter中進行對象註入。 AOP:面向切麵編程。其實就是一種新的不同於繼承的代碼重用技術。繼承是將共性
IOC:即控制反轉,主要意思就是Spring容器來管理對象的初始化,而不需要程式員人工的使用new方式來創建對象,並且當A對象依賴於B對象時,在配置文件中可以指定,同樣不需要程式員在構造函數或是setter中進行對象註入。
AOP:面向切麵編程。其實就是一種新的不同於繼承的代碼重用技術。繼承是將共性的地方都寫在父類中,各個子類通過繼承來複用這些共性的代碼。或是將共性的代碼抽取出來放入一個類中,凡是想使用這些代碼的類,都可以組合這個類來實現功能。這兩種方法,在一定方面上解決了部分代碼重用。但是,代碼重用的能力有限。
下麵我將以一個例子來說一下AOP。我舉得例子是我們需要在每個DAO類存取數據之後列印一條日誌。假設之前我們的DAO在存完後沒有任何操作,現在我們需要滿足需求,如果使用繼承或是組合,不論如何我們都要修改原有的DAO類,這樣就違反了開閉原則。所以,我們可以在Spring中這樣使用:假設我們有一個代理類LogInterceptor,它會接收被代理的DAO對象,通過指定橫切點pointcut,即指定在被代理的DAO類的某個函數執行前、還是執行後或是拋出異常時,這就是橫切點。指定好橫切點後,我們接下來就是指定橫切點處應該執行什麼操作。