AOP动态代理
动态代理类:在程序运行时,通过反射机制动态生成。
动态代理类通常代理接口下的所有类。
动态代理事先不知道要代理的是什么,只有在运行的时候才能确定。
动态代理的调用处理程
序必须事先InvocationHandler接口,及使用Proxy类中的newProxyInstance方法动态的创
建代理类。
Java动态代理只能代理接口,要代理类需要使用第三方的CLIGB等类库。
切面(Aspect): 横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象
通知(Advice): 切面必须要完成的工作
目标(Target): 被通知的对象
代理(Proxy): 向目标对象应用通知之后创建的对象
连接点(Joinpoint):程序执行的某个特定位置
aop:管理事务
aop 面向切面编程
切面----切点(包+类+方法)找到目标方法/被代理的方法-----通知(找到目标代理后怎加目标功能
---连接点---目标方法信息
在配置文件中<aop:aspect-autoproxy></aop:aspect-autoproxy>//开启aop动态代理
创建切面类 注释他@Aspect//代表切面类 @Component//让配置文件能扫描到他
AspectJ 支持 5 种类型的通知注解: //重点通知方式
@Before: 前置通知, 在方法执行之前执行
@After: 后置通知, 在方法执行之后执行
@AfterRunning: 返回通知, 在方法返回结果之后执行
@AfterThrowing: 异常通知, 在方法抛出异常之后
@Around: 环绕通知, 围绕着方法执行
通知注解括号中是切点,输入切入具体的切点地址,(是切入接口地址/不是切入实现类)
第一个*号返回任何的修饰符,第二个*号表示该类下所有,第三个*(..)表示对应接口的方法
例子:@Before(“execution(* com.lovo.*.service.IUserService.*(..))”)
方法中没有返回值(JoinPoint joinPoint)参数
@Around: 环绕通知, 需要在方法中书写返回值,返回类型为Object
方法传参(ProceedingJoinPoint joinPoint)方法参数
@Pointcut 切点 @Pointcut("execution(* *.service.IUserService.*(..))")
注解下的:方法 public void point(){}
用法可将切点方法放到,通知注释后,做到多个通知同时共享,封装
获取切面bean id = ‘’Aspect‘’
获取切点
<aop:ponintcut id="1" expression=切点"execution(* *.service.IUserService.*(..))"/>
aop
<aop:config>
//aop:通知@ //method获取切面Bean中的方法,书写方法名 ,pointcut-ref=切点注入
<aop:after method=" " pointcut-ref=“1”
//aop增强通知
<aop:aadvisor advice-ref="" pointcut="切点execution()"/>
</aop:config>
- 点赞
- 收藏
- 分享
- 文章举报
- 关于动态代理和AOP的入门好文
- springframe(七)AOP之动态代理
- 反射实现 AOP 动态代理模式(Spring AOP 的实现原理)
- 转载 用动态代理实现AOP
- 反射实现 AOP 动态代理模式(Spring AOP 的实现 原理)
- AOP系列之三:用Java动态代理实现AOP
- Spring学习三:Spring AOP的动态代理的机制
- AOP实现原理——动态代理
- AOP解密-----AOP之动态代理实现
- 【Java EE 学习 51】【Spring学习第三天】【cglib动态代理】【AOP和动态代理】【切入点表达式】
- AOP动态代理解析3-增强方法的获取
- 关于Spring AOP动态代理类型转换失败问题--java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to ...
- 静态代理动态代理以及aop
- 【Java基础】动态代理实现AOP之控制事务
- spring-aop原理讲解 JDK动态代理和CGLIB动态代理
- JAVA AOP 动态代理 的例子
- 《精通Spring4.X企业应用开发实战》读后感第七章(AOP基础知识、jdk动态代理,CGLib动态代理)
- Java动态代理模式jdk和cglib的2种实现以及二者的区别(AOP面向切面的前奏)
- Java Spring中的 aop(动态代理&&cglib代理)
- 反射实现 AOP 动态代理模式(Spring AOP实现原理)