AOP原理介绍
IOC:反射技术
AOP:动态代理技术
Spring框架采用AOP应用后,Spring容器返回的组件,是采用动态代理技术新生成的一个类(组件)。返回的新组件一般被称为动态代理类,动态代理
类中的方法实现原有组件的方法。在代理类方法中,调用了原有组件的方
法和切面组件的方法。
Spring采用了两种动态代理技术生成代理类
-采用JDK API java.reflect.Proxy
(仅适用目标组件带有接口)
public class $Proxy* implements 目标接口{
//重写目标接口方法
}
-采用CGLIB工具包
(适用目标组件有无接口都可以)
public class 代理类 extends 目标类型{//重写父类所有方法
}
如果需要强制采用CGLIB可以在下面元素中
追加proxy-target-class="true"设置<tx:annotation-driven/>
<aop:config>
<aop:aspectj-autoproxy/>