`
y806839048
  • 浏览: 1083377 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

aop认识综合

阅读更多

 

aop是日志,事物的本质,用动态代理作为原理,注解相当于切点(切入表达式)---即凡是实现定点触发的系列操作都需要此原理(切面是根本)(技术原理:动态代理)---可以理解为用注解的地方都是用aop即都是动态代理原理

切面  织入  目标对象  生成代理对象---有接口的自动用jdk,没有接口的类是cglib(可以指定cglib)

切面:切点,增强

切点:接入点的表达式(切面根据切点表达式即可获取目标方法)

增强:需要执行的加强动作

 

切面有顺序,可以在编译时织入,也可运行时织入,默认运行时织入

 

 

 

切面的顺序

order 越大的优先执行,即时order小的编译在前也会在增强是判断转化过去(@befor)

 

 

自定义的切面优先级不可和事物优先级同级(事物的优先级可以设置)

 

 

aop内部执行的顺序

 代理对象的加强方式形成拦截器链,依次执行---aop最终会按照顺序形成拦截器链

 

切面中目标方法的调用proceed也是用反射的机制调用,在运行时生成代理对象此时把方法名,参数信息放入父类成员变量。在将增强方法形成的拦截器链一起依次利用反射的机制执行。

 

 

代理对象的两大用处

     1,直接代理方法装饰了目标方法。

     2,代理对象的加强方式形成拦截器链,依次执行

 

参看:

https://blog.csdn.net/qq_32331073/article/details/80596084

 

https://blog.csdn.net/luojinbai/article/details/86728469

 

 

环绕通知和前置通知的区别

环绕通知=前置+目标方法执行+后置通知

环绕通知可以改变目标返回值类型(只要是object即可),前置后置不行(空返回)

 

重试次数的实现也是结合切面完成+Ordered接口的实现  实现Ordered 接口的访客可以设计请求次数

切面中接入该方法重试次数和Ordered 属性对比,超过了次数就抛异常

 

@Before  @After @Around 这些都可以单独和目标方法的构成拦截器链,更多的用法是 @Before  @After 空方法体 @Around 环绕前面两种通知

 

参看:

 

https://www.cnblogs.com/gmq-sh/p/6018587.html

 

 

 

 

 

分享到:
评论

相关推荐

    spring aop spring aop

    spring aop spring aop spring aop spring aop spring aop spring aop spring aop spring aop spring aop

    spring aop 自定义注解保存操作日志到mysql数据库 源码

    3、对spring aop认识模糊的,不清楚如何实现Java 自定义注解的 4、想看spring aop 注解实现记录系统日志并入库等 二、能学到什么 1、收获可用源码 2、能够清楚的知道如何用spring aop实现自定义注解以及注解的逻辑...

    spring-aop.jar各个版本

    spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...

    开发工具 aopalliance-1.0

    开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具 aopalliance-1.0开发工具...

    aop例子aop例子

    自己写的aop代理spring

    AOP使用CGLIB实现AOP功能

    Spring AOP实现方法之一:CGLIB 实现AOP功能

    基于注解实现SpringAop

    基于注解实现SpringAop基于注解实现SpringAop基于注解实现SpringAop

    spring aop jar 包

    spring aop jar 包

    aop所依赖的所有包

    aop所依赖的所有包+文档+源码,最新版全套aop aspectjweaver aopalliance aspects aspectjrt

    android aop

    自己写的android aop的例子 可以说明在android开发中如何使用aop编码的

    开发工具 spring-aop-4.3.6.RELEASE

    开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE...

    spring-aop实例

    spring aop

    spring-boot aop

    源代码是spring-boot添加aop切面功能的demo,简单易懂.

    aop的demo和资料

    SPRING AOP

    反射实现 AOP 动态代理模式(Spring AOP 的实现原理)

    AOP的意思就是面向切面编程。本文主要是通过梳理JDK中自带的反射机制,实现 AOP动态代理模式,这也是Spring AOP 的实现原理

    AOP@Work AOP 工具比较

    概述 AOP 工具当前的技术状况,比较对于该技术而言最成熟的一些方法:AspectJ、AspectWerkz、JBoss AOP、和 Spring AOP,并对比与每种方法的采用有关的问题。

    aop jar包.zip

    aop

    spring注解aop demo

    spring 注解 aop demo spring 注解 aop demo spring 注解 aop demo spring 注解 aop demo

    AOP联盟:aopalliance.jar API包

    AOP联盟:aopalliance.jar API包a set of AOP Java interface .

    Spring_aop源码

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象...

Global site tag (gtag.js) - Google Analytics