文档介绍:,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)SpringAOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码AspecJ是一个基于Java语言的AOP框架,,(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,(切入点):(通知/增强):,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下,(目标对象):代理的目标对象Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程. spring采用动态代理织入,而AspectJ采用编译期织入和类装在期织入Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类Aspect(切面):是切入点和通知(引介),无法使用JDK动态代理CGlib采用非常底层字节码技术,可以为一个类创建子类,/** ****@paramobjCGlib根据指定父类生成的代理对象 ****@parammethod拦截的方法 ****@paramargs拦截方法的参数数组 ****@paramproxy方法的代理对象,用于执行父类的方法 ****@return*/ publicObjectintercept(Objectobj,Methodmethod,Object[]args, MethodProxyproxy)throwsThrowable{ ...... }最新版本Spring已经将CGLib开发类引入spring-core-,生成动态代理对象,,。,spring使用CGLIB库生成目标对象的子类。程序中应优先对接口创建代理,便于程序解耦维护标记为final的方法,不能被代理,因为无法进行覆盖JDK动态代理,是针对接口生成子类,接口中方法不能使用final修饰CGLib是针对目标类生产子类,因此类或方法不能使final的Spring只支持方法连接点,不提供属性连接上海传智播客教育sh..,.........***@,通过JDK5注解技术,允许直接在Bean类中定义切面新版本Spring框架,建议使用AspectJ方式来开发AOP使用AspectJ需要导入SpringAOP和AspectJ相关jar包spring-aop-...aopalliance--aspects-...-