首页 > 其他分享 >11_Spring_AOP概念和原理

11_Spring_AOP概念和原理

时间:2023-03-02 23:07:00浏览次数:39  
标签:11 point Spring Advice AOP joint Aspect 通知

11_Spring_AOP概念和原理_AOP


AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等
AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理

11_Spring_AOP概念和原理_连接点_02


为Dao层所有的add方法添加一个性能记录功能

AOP中的术语辨析

1 连接点 Joint point:
类里面那些可以被增强的方法,这些方法称之为连接点
表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point

2 切入点 Pointcut: 
实际被增强的方法,称之为切入点
表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方

3 通知 Advice: 
实际增强的逻辑部分称为通知 (增加的功能)
Advice 定义了在 Pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。
通知类型: 1 前置通知 2 后置通知 3 环绕通知 4 异常通知 5 最终通知

4 目标对象 Target:被增强功能的对象(被代理的对象)
织入 Advice 的目标对象

5 切面Aspect: 表现为功能相关的一些advice方法放在一起声明成的一个Java类
Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。

6 织入 Weaving:
创建代理对象并实现功能增强的声明并运行过程
将 Aspect 和其他对象连接起来, 并创建 Adviced object 的过程

 

标签:11,point,Spring,Advice,AOP,joint,Aspect,通知
From: https://blog.51cto.com/u_15864767/6096787

相关文章

  • 11_Spring_AOP概念和原理
    AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现日志处理,权限控制,性能检测,事务控制等AOP实现的原理就是动态代理,在有接口的......
  • 10_Spring_CGLIB动态代理
     proxy动态代理面向接口1必须有接口和实现类 2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类 packagecom.msb.testCglib;importo......
  • 10_Spring_CGLIB动态代理
     proxy动态代理面向接口1必须有接口和实现类 2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类 packagecom.msb.testCglib;importo......
  • 6_Spring_Bean的自动装配
     bean自动装配通过property标签可以手动指定给属性进行注入我们也可以通过自动转配,完成属性的自动注入,就是自动装配,可以简化DI的配置准备实体类 packagecom.msb.be......
  • 6_Spring_Bean的自动装配
     bean自动装配通过property标签可以手动指定给属性进行注入我们也可以通过自动转配,完成属性的自动注入,就是自动装配,可以简化DI的配置准备实体类 packagecom.msb.be......
  • 今日报告-11
    今日打卡所花时间(包括上课):5h代码量(行):300发表博客:3篇(不包括本篇)了解到的知识点:今天重心重回Android学习,今天初步开始写了每日打卡app,同时学习和巩固了许多相关知识,......
  • 11.1/2 鼠标显示问题(harib08a)11.2 实现画面外的支持(harib08b)
    11.1鼠标显示问题(harib08a)存在问题:​ 在harib07d中鼠标移动到最右侧后就不能再往右移了解决办法:将if(mx>binfo->scrnx-16){mx=binfo->scrnx-16;}if(......
  • 10_Spring_CGLIB动态代理
    ​ proxy动态代理面向接口1必须有接口和实现类 2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类 packagecom.msb.testCglib......
  • 10_Spring_CGLIB动态代理
    ​ proxy动态代理面向接口1必须有接口和实现类 2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类 packagecom.msb.testCglib......
  • 6_Spring_Bean的自动装配
    ​ bean自动装配通过property标签可以手动指定给属性进行注入我们也可以通过自动转配,完成属性的自动注入,就是自动装配,可以简化DI的配置准备实体类 packageco......