《Pro Spring》学习笔记之ComposablePointcut组合切入点实例

本文通过实例介绍了如何使用Spring的ComposablePointcut来组合切入点,以实现对类中所有getter和setter方法的通知。通过union和intersection方法,可以创建交集或并集,使得切入点能更灵活地匹配多个条件。测试结果显示,通知成功应用于目标方法。
摘要由CSDN通过智能技术生成

每一个advisor中一般只定义一个切入点,如果有这样的需求,我们相对一个类中的getter和setter方法都进行通知,一般来说只能定义两个切入点来实现,但没有一个切入点可以同时处理两个,当然,我们可以利用新的逻辑创建一个切入点,但更好的方式是使用ComposablePointcut组合切入点,利用他的切入点union(交集)和intersection(并集)的特性组合两个切入点

union和 intersection方法的参数是ClassFilter和MethodMatcher参数

 

调用接受MethodMathcher的union()方法将ComposablePointCut的MethodMatcher改为一个UnionMethodMathcer,他包含现有的MethodMatcher和union()的MethodMatcher的并集,当任何一个返回true时候,则UnionMethodMathcer返回true,参数ClassFilter也会生成类似的结构

intersection原理和union类似,只是当两个MethodMathcer全部为true方返回true

 

BeanOne.java

 

package  ch6.SimpleAOP.MethodMatchNamePointCut;

public   class  BeanOne  {
   
public void foo(){
       System.out.println(
"foo-no-arg");
   }

   
public void foo(int a){
       System.out.println(
"foo-with-arg");
   }

}

 

SimpleAdvise.java

 

package  ch6.SimpleAOP.MethodMatchNamePointCut;

import  org.aopalliance.intercept.MethodInterceptor;
import  org.aopalliance.intercept.MethodInvocation;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值