Spring中的AOP

6 篇文章 0 订阅
5 篇文章 0 订阅
Spring中的AOP概念图示:

Spring实现AOP的原理:
1、动态代理(优先)
被代理对象必须实现接口,才能产生代理对象,如果没有接口将不能使用动态代理。
2、cglib代理(不需要接口)
第三方代理技术,cglib代理可以对任何类生成代理,代理的原理是 对目标对象进行继承代理
如果目标对象被final修饰,那么该类无法被cglib代理。

AOP名词:
Target(目标对象):被代理对象。
Joinpoint(连接点):目标对象中,所有可以被增强的方法。
Pointcut(切入点):目标对象,已经增强的方法。
Advice(通知/增强):增强的代码。
Weaving(织入):将通知应用到切入点的过程。
Proxy(代理):将通知织入到目标对象之后,形成的代理对象。
Aspect(切面):切入点+通知。


SpringAOP的使用:(分为xml配置和注解配置)

XML配置步骤:
1、导包
除了6个基础包之外,还需要4个包

2、准备目标对象(Target)

3、准备通知(Advice)

4、将通知织入目标对象
准备工作:导入AOP命名空间 xmlns:context="http://www.springframework.org/schema/context"

配置文件进行织入

关于expression语句(从上往下一步一步演化)
public void com.service.UserServiceImpl.save() //只织入UserServiceImpl的public void save()方法
void com.service.UserServiceImpl.save() //public可以省略,一般不写
* com.service.UserServiceImpl.save() //任意返回值
* com.service.UserServiceImpl.*() //对任意空参方法进行织入
* com.service.UserServiceImpl.*(..) //对方法的参数不做要求
* com.service.*ServiceImpl.*(..) //对以ServiceImpl为后缀的对象的所有方法织入
* com.service..UserServiceImpl.*(..) //还会寻找service包下的子包( 最常用)


注解配置步骤:
1、导包(和xml配置一样)
2、准备目标对象和通知对象(和xml配置一样)
3、将通知织入目标对象
准备工作:导入AOP命名空间 xmlns:context="http://www.springframework.org/schema/context"
配置对象(也可以使用注解完成)

开启使用注解完成织入(一定要开启才有效)

在通知类中写注解
上述写法过于麻烦。维护有困难,可以将切点抽取出来,统一管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值