spring的AOP学习1

AOP的基本概念
首先,我先来介绍一下AOP的几个核心概念:
1.Aspect:跨越多个类的横切关注点的模块化,在Spring的AOP中,可以使用Schema和@Aspect注解的方式来实现。
2.Join Point:执行程序中的一个点。这里需要注意的是,一个Join Point总是代表一个方法的执行
3.Advice:在一个切面的特定的连接点上的执行行为。“Advice”的不同类型包括“around”、“before”、“after”的Advice.在Spring中通过代理模式实现AOP,并通过拦截器模式以环绕连接点的拦截器链织入通知.
4.PointCut:这里我们可以认为是一组连接点的集合。Advice匹配一个PointCut的执行并且运行在已于PointCut匹配的Joint Point中。
5.Introduction(引入):说明代表一个类型的附加方法或字段。Spring AOP允许你引入新的接口或者新的相匹配的实现来advice任意的对象
6.Target Object(目标对象):被Adviced到一个或多个Aspect的对象,或者作为Adviced的对象被引用。因为Spring实现使用运行时代理,这个对象就是代理对象。
7.AOP proxy(代理对象):通过AOP的Framework创建的对象为了来实现Aspect。在AOP中,一个代理对象就是一个JDK动态的代理或者一个CGLIB代理。也就是通过代理来对目标对象应用切面。
8.
Weaving(织入)织入是一个过程,是将切面应用到目标对象从而创建出AOP代理对象的过程,织入可以在编译期、类装载期、运行期进行。(织入)在运行时执行。

其次,我来介绍一下Advice的类型:
1.before advice:在Joint Point前执行,但这个方法不能影响程序的正常执行(除非抛出异常)。
2.after running advice:在Joint Point正常完成后执行(在Joint Point处未抛出连接异常)
3.after throwing advice:在Joint Point抛出异常后执行
4.after(finally) advice:在Joint Point处执行返回的通知,类似于java的finally方法
5.around advice(最强大的一种advice):在方法调用前或者调用后执行定制的行为,并且执行Joint Point的决定是否执行连接点处的方法、替换返回值、抛出异常等等。

最后,我们来看一下AOP代理。Spring的AOP代理默认使用J2SE的动态代理(优先使用),它当然也可以使用CGLIB代理。对于代理类是必须的,但不是接口。对于J2SE的动态代理,请大家关注我接下来的文章。谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值