spring AOP重要概念的定义

关注点(concern):一个关注点可以是一个特定的问题概念,或是应用程序的兴趣区间,总而言之,应用程序必须达到的一个目目标。 eg:安全性检查,事务管理,性能监控。在一个oo的应用中,关注点可能已经被代码模块化,也可能散落在整个对象模型之中

横切关注点(crosscutting concern):如果一个关注点的实现代码散落在很多个类或方法之中,eg:安全性检查,我们称之为横切关注点

方面(aspect):一个方面是对一个横切关注点的模块化,它把原本散落在各处的用于实现这个关注点的代码归整到一处

连接点(join point):程序执行过程中的一点
1.方法调用(method invocation):对方法可能包括构造函数的调用,不过并非所
有的aop框架都支持对象构造时的增强(advice)
2.字段访问(field access):读或写的实例变量,同样,并非所有aop框架都支持字
段访问的增强,那些支持这类增强的aop框架都可以区分读操作或写操作
3.异常抛出(throws):特定的异常被抛出

增强(advice):在特定连接点执行的动作,很多aop框架都以拦截器(interceptor)的形式来表现增强————所谓拦截器是这样的一个对象,当连接点被调用时,它会收到一个回调消息。增强的例子包括:a。在执行特定连接点之前,检查安全性凭证 b.在执行某个方法之前开启事务,在连接点执行完毕后提交回滚事务

切入点(pointcut):一组连接点的总称,用于指定某个增强,应该何时被调用,,切入点通常用正则表达式或别的通配符语言来描述,有些aop实现支持切入点的组合

引介(introduction):为一个现有的java类或接口添加方法或字段,这种技术可以用于实现java中的多继承,或者给现有的对象模型附加新的api;eg:可通过引介让一个现有的对象实现w3c规定的xmlnode接口(参见混入继承)

混入继承(mixin inheritance):一个“混入类”封装了一组功能,这组功能可以被混入到现有的类当中,并且无需求助于传统的继承手段。在aop这里,混入是通过引介来实现的,在java中可通过混入来模拟多继承

织入(wearing):将方面整合到完整的执行流程中(完整的类,此时被织入的便是引介)

当执行流程进展到连接点时,增强会首先接管流程控制权,当增强允许执行流程继续前进,执行真正的方法调用或字段访问时,我们就说这样操作(procceed)了


不同类型的增强:
前增强(before ,pre):在连接点调用之前,首先调用增强
后增强(after,post):在连接点调用之后,再调用增强,在aspectJ中,后增强又分为三种:
1.在调用成功完成之后,aspectj和spring都将这种增强称为“返回后增强”(after returning advice).
2.在抛出某种特定类型或子类型的异常 后,aspectj称之为“抛出后异常”(after throwing advice),spring称为“抛出异常”(throws advice)
3.在特定点的任何调用之后,不管嗲用是否抛出异常,aspectj称为“后增强”(after advice)
环境增强(around):这类增强可以完全控制执行流程,除了完成本身的工作之外,它还需要负责主动调用连接点,促使真是的操作发生(procced)--这通常是通过调用某个特定的方式来完成的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值