Spring的静态Pointcut切入点

在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java;

Spring的Pointcut分为静态Pointcut、动态Pointcut和用户自定义Pointcut三种,其中静态Pointcut只是需要考虑类名、方法名;动态Pointcut除此之外,还要考虑方法的参数,以便在运行时可以动态的确定切入点的位置。

Spring中切入点的粒度是方法级,因此在Spring AOP中Pointcut的作用是配置哪些类中哪些方法在我们定义的且入点之内、哪些方法应该被过滤排除。

1、静态Pointcut

 静态即意味着不变,例如方法和类的名称。因此我们可以根据类和方法的签名来判定那些类的哪些方法在我们定义的切入点之内、哪些应该被过滤排除。

 Spring中定义中如下几个静态Pointcut的实现类,介绍如下:

 NameMatchMethodPointcut:只能对方法名进行判别的静态Pointcut实现类。

 代码示例

<beanid="NameMatchMethodPointcut"

class="org.springframework.aop.support.NameMatchMethodPointcut">

   <propertyname="mappedNames">

     <list>

       <value>pos*</value>

       <value>start</value>

     </list>

  </property>

</bean> 

注意:post*表示包含所有以pos开始的方法。

此外,NameMatchMethodPointcut还暴露了ClassFilter类型的classFilter属性,可以用于指定ClassFilter接口的实现类来设置类过滤器。ClassFilter接口的定义如下:

代码示例

packageorg.springframework.aop;

public interfaceClassFilter {

  boolean matches(Class clazz);

  ClassFilter TRUE =TrueClassFilter.INSTANCE;

} 

package org.springframework.aop;

其中matches方法用于类的匹配,参数clazz是需要匹配的目标类,匹配成功则返回true。

2、使用JDK中定义的正则表达式对方法名进行匹配的静态Pointcut——JdkRegexpMethodPointcut

代码示例:

<beanid="JdkRegexpMethodPointcut" 

class="org.springframework.aop.support.JdkRegexpMethodPointcut">

    <property name="patterns">

       <list>

         <value>.*ost</value>

         <value>.*tart</value>

       </list>

    </property>

    <propertyname="excludedPatterns">

       <list>

         <value>.*tart</value>

       </list>

    </property>

</bean>

注意:.*ost正则表达式,所有以ost结尾的方法都匹配。

3、抽象的静态Pointcut——StaticMethodMatcherPointcut,,它不能被实例化。开发者可以自己扩展该类来实现自定义的切入点。

疯狂Java培训的课程采用针对性培养,全面提升学员就业能力,重点加强训练职业素质。老师辛勤的讲解,让学员充分感受Java的魅力,充分激发每个学员对于编程的热爱,让学员在半年的时间内掌握8-10万的代码量,成为真正的技术高手,疯狂Java采用企业全真模拟开发训练,迅速积累项目经验。让学员迅速获得其他人需要花费两年才能获得的工作技能,无忧就业!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值