springAOP面向切面编程

AOP简单介绍

AOP采用横向抽取机制取代了纵向继承,不破坏原有的类,生成一个代理类,在原来的类上增强,可随时添加,取消添加的功能。

AOP实现原理

JDK动态代理
cglib动态代理
AOP自动在内部实现这两种代理,当有接口时就会使用JDK动态代理,没有接口时就会使用cglib动态代理.

AOP相关专业专业术语

连接点:可以被拦截的方法,可以被增强的方法,这些方法被称为连接点
切入点:真正被拦截的方法,真正被增强的方法
通知:增强的内容,通常将这些内容封装到一个方法中,这个方法就称为通知
引介:类层面的增强,给原有的类增加一些属性方法
被增强的对象:被增强的对象
织入:将通知应用到目标对象的过程
代理对象:内部动态代理生成的对象
切面:多个通知和多个切入点的集合

Spring中AOP的使用

1.引入spring基本jar包
2.引入AOP开发的jar包
在这里插入图片描述

3.配置文件中引入aop约束
在这里插入图片描述

4.spring测试在这里插入图片描述

5.测试
在这里插入图片描述

6.编写一个切面类
在这里插入图片描述

7.将切面交给spring
在这里插入图片描述

8.配置aop完成对目标产生代理
在这里插入图片描述

AOP通知类型

1.前置通知
在这里插入图片描述
在方法执行前添加通知
2.后置通知
在这里插入图片描述
在方法执行后添加通知,可以获取方法执行后的返回值
3.环绕通知
在这里插入图片描述
相当于一个事务操作,可以控制切入点是否执行
4.异常通知
在这里插入图片描述
当抛出异常是添加的通知,可以获取异常值
5.最终通知
在这里插入图片描述
无论是否出现异常都会被执行的通知

AOP切入点表达式

基于execution函数完成

语法:【访问修饰符】方法返回值 包名.类名.方法名(参数)
1.public com.itlike.demo1.GoodsDaoImpl.save(…)
参数为任意参数
2.* com.itlike.demo1.GoodsDaoImpl.save(…)
任意类型
3.* com.itlike.demo1.GoodsDaoImpl+save(…)
当前类和子类
4.* com.itlike….(…)
com.itlike包下以及子包所有类的所有方法
在这里插入图片描述

AOP注解方式ApsectJ开发

1.引入jar包
在这里插入图片描述

2.引入配置文件
在这里插入图片描述

3.编写切面类配置
在这里插入图片描述

4.使用注解的aop对象目标类进行增强
在这里插入图片描述

5.注解aop通知类型
@Before @AfterReturning @Around @AfterThrowing@After与上面配置文件里的通知类型相同,不懂作用的建议翻到上面反复查看。下面简单介绍一下使用方法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.aop的注解切入点的配置
在这里插入图片描述

7.定义多个切入点
在这里插入图片描述
在这里插入图片描述

8.使用接口与不使用接口内部代理区别

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值