對spring的理解spring
spring是一個輕量級的框架,說白了就是一個大雜燴,提供了目前各類流行框架的集成。編程
Ioc,將類的建立和依賴關係由原來的new轉交給spring來處理,實現了鬆耦合安全
aop,將安全,事務等與程序邏輯相對獨立的功能抽象出來,利用spring講這些功能嵌入進去,實現了按照方面編程,提升了複用性。框架
AOP實現代理
aop代理主要分爲靜態代理和動態代理,靜態代理的表明爲AspectJ;而動態代理則以Srping AOP爲表明。繼承
Spring AOP中的動態代理主要有兩種方式,JDk動態代理和cglib動態代理。JDK動態代理經過反射來接收被代理的類,而且要求被代理的類必須實現一個接口。JDK動態代理的核心是InvocationHandler接口和Proxy類。接口
若是目標類沒有實現接口,那麼Spring AOP會選擇使用CGLIB來動態代理目標類。CGLIB是一個代碼生成的類庫,能夠在運行時動態的生成某個類的子類。注意,CGLIB是經過繼承的方式作的動態代理,所以若是某個類被標記爲final,那麼它是沒法使用CGLIB作動態代理的。事務