spring学习笔记-3切面

1.几个概念

通知:advice , 切面what,when

切入点:匹配了advice要织入的一个或多个连接点

切面: advice+pointcut   功能、何时以及何地

目标target: 被通知的对象

代理proxy: 目标对象应用advice之后被创建的对象

织入:把切面应用到目标对象创建proxy的过程

2. 代理对象包裹着target, 代理对象截取方法调用之后实际调用目标bean方法之前,代理会执行切面逻辑

3. spring生成代理类方式有两种:(见startSpring5_aop1)

1) 接口  java.lang.reflect.Proxy

2) 类与子类 CGLIB对象 CGlibProxyFactory implements MethodInterceptor

spring切面只支持方法截取,若想使用字段、构造器截取则要借助于AspectJ切面

定义XXXadvice继承:MethodBeforeAdvice, AfterReturnAdvice, ThrowAdvice

周围通知:MethodInterceptor

  
  
  
  
  1. around类型:  
  2. implements MethodInterceptor {  
  3.    public Object invode(MethodInvocation invocation) throw Throwable {  
  4.       try {  
  5.         xxxdo before thing  
  6.     Object ret = invocation.proceed();  
  7.     xxx do after thing  
  8.  
  9.     return ret;  
  10.       } catch (PrformanceException throwable) {  
  11.     xxx do after throw thing  
  12.  
  13.     throw throwable;  
  14.       }  
  15.    }  

4. 切点分两种:正则表达式切点,AspectJ切点,它们也是<bean 来定义

你可能感兴趣的:(spring,职场,学习笔记,休闲)