首页 > 其他分享 >AOP

AOP

时间:2023-02-13 10:36:08浏览次数:36  
标签:JDK Spring 代理 织入 Proxy AOP


代理分为静态代理动态代理,静态代理,顾名思义,就是你自己写代理对象,动态代理,则是在运行期,生成一个代理对象。

Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用JDK Proxy去进行代理了(为啥?你写一个JDK Proxy的demo就知道了),这时候Spring AOP会使用Cglib,生成一个被代理对象的子类,来作为代理,放一张图出来就明白了:

AOP_AOP

好,上面讲的是AOP的第一种实现,运行时织入

但是不是所有AOP的实现都是在运行时进行织入的,因为这样效率太低了,而且只能针对方法进行AOP,无法针对构造函数、字段进行AOP。

我完全可以在编译成class时就织入啊,比如AspectJ,当然AspectJ还提供了后编译器织入和类加载期织入,这里我就不展开讨论了

标签:JDK,Spring,代理,织入,Proxy,AOP
From: https://blog.51cto.com/u_15258465/6053657

相关文章

  • AOP切入同类调用方法不起作用,AopContext.currentProxy()帮你解决这个坑
    原来在springAOP的用法中,只有代理的类才会被切入,我们在controller层调用service的方法的时候,是可以被切入的,但是如果我们在service层A方法中,调用B方法,切点切的是B方法,那么......
  • 用注解实现AOP
    一、@Aspect:切面类@Before:前置@Around:环绕@AfterRetuming:后置@AfterThrowing:异常@After:最终@Pointcut:连接点,标注在一个无返、无参、二、加载<context:component-scanbase-p......
  • aop操作-AspectJ注解方式
    1.创建类,类中定义方法packagecom.xxx.spring.aop.aopanno;publicclassUser{publicvoidadd(){System.out.println("add...");}}2.创建增强......
  • aop术语和aop操作准备工作
    1.连接点类中哪些方法能被增强,这些方法被称为连接点2.切入点实际被真正增强的方法,称为切入点3.通知(增强)实际增强逻辑的部分,称为通知(增强):①前置通知②后置通知③环......
  • AOP基本概念
    一、面向切面编程(AspectOrientedProgramming)是对面向对象编程(OOP)的有益补充和升级AOP编程思想研究的不是层与层之间的关系,主要的是同一层的各个不同功能块共性功能,比如:访......
  • AOP开发流程
    一、导入并加载jar包AOPaopalliance-1.0.jaraspectjweaver-1.6.9.jarspring-aop-3.2.13.RELEASE.jarSpringspring-beans-3.2.13.RELEASE.jarspring-context-3.2.13.RELEASE.......
  • aop中的一些对象
    AOP编程过程中的Signature接口转载:https://blog.csdn.net/M_amazing/article/details/121747188此接口通常用于跟踪或记录应用程序以获取有关连接点的反射信息////Sou......
  • .Net6对AOP的多种支持之IAsyncResourceFilter
     环境:.Net6Web项目Mvc结构开发工具:VS2022IAsyncResourceFilter(资源缓存异步)IAsyncResourceFilter扩展   ASP.NETCore6提供的是接口IAsyncResourceFilter......
  • Springboot整合AOP和注解,实现丰富的切面功能
    简介我们在文章《SpringAOP与AspectJ的对比及应用》介绍了AOP的使用,这篇文章讲解一下AOP与注解的整合,通过注解来使用AOP,会非常方便。为了简便,我们还是来实现一个计时的功......
  • Spring AOP与AspectJ的对比及应用
    1简介AOP,即面向切面编程是很常用的技术,特别是在JavaWeb开发中。而最流行的AOP框架分别是SpringAOP和AspectJ。2SpringAOPvsAspectJSpringAOP是基于SpringIoC实......