spring-aop组件详解——ClassFilter类过滤器

本文详细介绍了Spring AOP中的ClassFilter,它是Advisor的一部分,用于决定目标类是否匹配以进行增强。ClassFilter有多种实现,如TypePatternClassFilter、AnnotationClassFilter等,以及特殊实现如AspectJExpressionPointcut。ClassFilters工具类提供了组合ClassFilter的逻辑。通常使用AspectJ切点表达式选取目标类更为灵活强大。
摘要由CSDN通过智能技术生成

术语定义:

  1. ClassFilter:类过滤器
  2. Advisor:通知器
  3. targetClass:目标类,或称被代理的原始类
  4. Advice:通知,或称拦截器,也就是要增强的代码逻辑
  5. MethodMatcher:方法匹配器
  6. Pointcut:切点,由ClassFilter和MethodMatcher组成

        ClassFilter,用于约束一个Advisor,与指定的targetClass是否匹配。只有匹配的前提下,Advisor才能使用其内部持有的Advice对targetClass进行增强。

        Advisor分两大类:IntroductionAdvisor(引介通知器)和PointcutAdvisor(切点通知器)。两类Advisor都是为了增强targetClass,但是作用不一样。IntroductionAdvisor主要为了给targetClass追加接口(或者说追加更多的方法),这种增强属于类级别的增强;而PointcutAdvisor主要为了拦截方法,这种增强属于方法级别的增强。

        正是由于两类Advisor的增强级别不同,而导致了对ClassFilter的使用方式不同。IntroductionAdvisor进行类级别增强,因此只需要直接持有ClassFilter即可;而PointcutAdvisor进行方法级别增强,因此需要同时使用ClassFilter和MethodMatcher(方法匹配器)。PointcutAdvisor内

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值