Spring AOP兩種實現機制是什么?
1.如果是有接口聲明的類進行AOP 時,spring調用的是java.lang.reflection.Proxy 類來做處理
2.如果是沒有接口聲明的類時, spring通過cglib包和內部類來實現
在AOP,權限控制,事務管理等方面都有動態代理的實現。JDK本身有實現動態代理技術,但是略有限制,即被代理的類必須實現某個接口,否則無法使用JDK自帶的動態代理,因此,如果不滿足條件,就只能使用另一種更加靈活,功能更加強大的動態代理技術—— CGLIB。Spring里會自動在JDK的代理和CGLIB之間切換,同時我們也可以強制Spring使用CGLIB。
<aop:aspectj-autoproxy ? proxy-target-class="true" ? />配置了這句話的話就會強制使用cglib代理。 ?默認就是false。