spring框架AOPx面向切面编程详解

AOP(面向切面编程)

很多个方法要加相同的功能,会产生很多的重复代码,在静态代理的基础上sun公司开发出了jdk动态代理,cglib第三方开发了动态代理,AOP属于封装了这两个动态代理,在切换之间游刃有余,简化了操作代理底层,只需要配置一下spring.xml,切入点,通知。

在这里插入图片描述

joinPoint:连接点,连接点就是目标方法;
pointcut:切入点,是连接点的集合,就是给你目标的方法定位,相当于找到了你的目标方法,而切入点在aop中不是一个
adivce:通知,是给目标方法增强的功能。
切面:我们切入点切入的位置,加上通知增强的功能等于我们的切面;切面=切入点+通知。
目标对象:需要增强的对象或者说需要被代理的对象;
织入:就是将切面应用到目标对象的过程叫织入
代理对象:AOP底层的jdk和cglib动态代理生成的对象叫代理对象。

AOP的两种应用方式

1.使用标签开发:
这个方法在spring中配置对于没有理解AOP的小白来说有些复杂,只要你理解了我上面说到的七个点,我相信只是单词的稍微记忆。
我们需要先写完接口还有实现类,具体给你们展示一下例子

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述简单的展示一下类我们主要看spring.xml和aspect的关系;

在这里插入图片描述
先在创建的aspect的类中写上前置通知和后置通知的方法。spring中配置,实现接口类的bean,aspect类的bean,切面的配置:

在这里插入图片描述
befter:是我们aspect类中配置的前置方法
after:是我们aspect类中配置的后置方法

2.使用注解开发
主要改变的是aspect类中的结构和spring.xml
在这里插入图片描述
在这里插入图片描述
spring中两个bean,target目标对象,aspect为切入点,autoProxy自动代理,开启后切入点,标签中还有转换动态代理类型,,spring默认是jdk动态代理,还可以改为cglib动态代理;

猜你喜欢

转载自blog.csdn.net/qq_29349143/article/details/88141641
今日推荐