spring aop

Java207

代理相关的概念

  • advisor 包含切入点和切入方法

  • 切点 pointcut 意即在哪里做切入

  • 切入方法 advice 包括 运行前 返回后 抛出异常后 最终finally 环绕 五种 spring支持的advice有以下几种

  • MethodInterceptor
  • MethodBeforeAdviceAdapter
  • AfterReturningAdviceAdapter
  • ThrowsAdviceAdapter 这个比较有意思,这个ThrowsAdvice接口内容是空的,解析这个advice的时候,从接口实现中扫描约定好的方法。 其中MethodInterceptor是能够直接支持的,如果是其他的的advice,就使用对应的适配器转化成MethodInterceptor。 定义advisor的时候,有个参数是runtime,如果为true,则再对代理对象方法的参数做下过滤。 这里会有两次匹配
  • 第一次是初始化的时候,判断在处理的bean是否命中某些advisor 第一次匹配的时候,会把spring中所有的advisor以及使用aspectj注解修饰的bean,并缓存下来
  • 第二次是代理对象真正执行的时候,会判断有哪些advisor和当前执行的方法匹配

  • joinpoint 连接点 具体指带方法的运行,真正执行代理逻辑的方法会有一个joinpoint的对象,基于这个对象,可以执行被代理对象的方法

spring中给提供了ProxyFactory给我们封装了代理的实现

spring aop实现

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长