SpringAop

一、Aop:面向切面编程(OOP扩展和延续)

1、核心:

横向重复、纵向抽取

在这里插入图片描述

2、优点:

1)、对业务的各个部分进行分离
2)、降低业务逻辑各部分之间的耦合度
3)、提高程序可用性
4)、提高开发效率

3、功能

日志记录、性能统计、安全控制、事务处理、异常处理

4、AOP与OOP的区别

一、OOP(面向对象编程)

针对业务处理过程的实体及属性进行抽象封装,获得更加清洗高效的逻辑单元划分

二、AOP(面向切面编程)

针对业务处理过程中的切面进行提取,面对的是处理过程中的某个步骤或阶段,获得逻辑过程中个部分低耦合性的隔离效果
ood/oop是面向名词领域;aop面向动词领域。两者有本质差异

二、AOP相关术语

1、目标对象(target)

指需要被增强的对象,springAop是代理魔兽实现这个对象,永远是被代理对象

2、连接点(join point)

指被增强的方法

3、通知\增强(advice)

实际增强的方法。分为前置、后置、异常、环绕、最终通知

4、切面(aspect)

切入点和通知的结合

5、织入(weaving)

目标对象的连接点被增强的过程

6、代理(poxy)

一个类被AOP织入增强后,产生一个代理类

7、引介(introduction)

一种特殊的通知

三、通知

1、前置通知

方法执行前执行的通知

2、后置通知

方法执行后执行的通知,若切入点运行错误则不会运行

3、环绕通知

方法执行前执行一个通知,方法执行后执行一个通知,若切入点运行错误则不会运行

4、异常通知

切入点运行异常时会出现的通知

5、最终通知

不管切入点方法运势是否错误都会出现的通知

四、AOP底层实现

1、静态AOP

指aspectJ实现的AOP,将切面代码直接编译到JAVA类文件中

2、动态AOP

指将切面代码进行动态织入实现AOP

3、实现

JDK提供的动态代理技术和CGLIB动态字节码增强技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值