相比面試過程當中Spring是必問的吧,而Spring中Aop又是必須的,簡單的說就是談談本身對aop的理解,知道aop不,咱們也都知道aop即面向切面編程,但具體點呢?面試
AOP,即面向切面編程,是對面向對象編程的一個補充,它能夠在不影響源代碼的狀況下對其進行加強,好比:日誌,事務,權限控制等。Spring AOP是基於動態代理實現的,在不一樣的情景中,有兩種動態代理能夠選擇,即JDK動態代理和Cglib動態代理,Spring Aop的默認策略是,代理接口的時候採用JDK動態代理,其餘使用Cglib;JDK動態代理是根據傳入的類加載器,接口和handler來構建一個新的代理類,代理類繼承Proxy類,並實現傳入的接口,在代理對象調用接口方法時,會被轉發到handler中,而後經過反射來執行被代理類的方法;Cglib是經過繼承被代理類實現的,經過構建字節碼來構建代理類,在轉發到interceptor方法中時,經過FastClass機制來執行被代理類的方法。編程
有關動態代理,看我下一篇博客。代理