spring aop术语怎么理解
发布网友
发布时间:2022-04-24 14:14
我来回答
共1个回答
热心网友
时间:2022-05-24 08:36
1、关注点(concern)
1) 核心关注点: 关注系统的业务逻辑 --> OOP
2) 横切关注点: 关注系统级服务,比如事务、安全、日志 --> AOP
2、方面(aspect):
把散落在系统各处与横切关注点相关的重复代码抽取出来归整到一处形成一个模块,我们称为方面.
3、连接点(joinpoint):
程序运行过程中的某一点.比如方法调用、属性访问、异常抛出.
4、切入点(pointcut): 一组连接点
注意: 如果要有选择性地拦截目标对象中的方法的话需要定义切入点
5、增强(advice):
在不修改原有代码的前提下,为某一个对象增加新的功能
(如:事务服务、日志服务),在spring中增强是通过*实现的.
6、织入(Weaving):
将方面加入到(*)方法中为对象增加额外功能的过程称为织入
7、目标对象(target object): 需要被增强功能的对象称之为目标对象,也被称为被增强或被代理对象。
在spring中通常指service层接口实现类的对象
8、代理对象(proxy object)
为目标对象增加新功能从而产生的一个新的对象称为代理对象.负责调用*和目标对象的方法.
9、*
1) 前增强*
在目标对象方法执行之前,执行此*为目标对象增加新功能
实现接口: MethodBeforeAdvice
2) 后增强*
在目标对象方法执行之后,执行此*为目标对象增加新功能
实现接口: AfterReturningAdvice
3) 环绕增强*
在目标对象方法执行前后,执行此*为目标对象增加新功能
实现接口: MethodInterceptor
4) 抛出增强*
在目标对象方法抛出异常后,执行此*为目标对象增加新功能
实现接口: ThrowsAdvice
定义方法:
public void afterThrowing
([Method method], [Object[] args], [Object target], Throwable subclass)
10、增强器(advisor)
为*定义切入点(一组连接点)之后产生增强器,增强器可以有选择性地拦截目标对象中的部分方法.
注意: *默认拦截所有目标对象中的方法
spring框架中的增强器:
org.springframework.aop.support.RegexpMethodPointcutAdvisor
method="" destroy-method=""/>