快速业务通道

Struts2表单请求流程(二)— Struts2高级的POJO访问 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

Spring的切入点(一 静态Pointcut)

时间:2011-09-24 残梦追月

Pointcut即切入点,用于配置切面的切入位置。由于Spring中切入点的粒度是方法级,因此在Spring AOP中Pointcut的作用是配置哪些类中哪些方法在我们定义的且入点之内、哪些方法应该被过滤排除。Spring的Pointcut分为静态Pointcut、动态Pointcut和用户自定义Pointcut三种,其中静态Pointcut只是需要考虑类名、方法名;动态Pointcut除此之外,还要考虑方法的参数,以便在运行时可以动态的确定切入点的位置。

1、静态Pointcut

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

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

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

使用范例如下:

代码

<bean id="NameMatchMethodPointcut" class="org.springframework.aop.support.NameMatchMethodPointcut">    <property name="mappedNames">      <list>        <value>pos*</value>        <value>start</value>      </list>   </property> </bean> 

注意:post*表示包含所有以pos开始的方法。(大小写敏感)。

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

代码

package org.springframework.aop; public interface ClassFilter {   boolean matches(Class clazz);   ClassFilter TRUE = TrueClassFilter.INSTANCE; }  package org.springframework.aop;

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

Spring的切入点(一 静态Pointcut)(2)

时间:2011-09-24 残梦追月

2、JdkRegexpMethodPointcut:使用JDK中定义的正则表达式对方法名进行匹配的静态Pointcut。范例如下:

代码

<bean id="JdkRegexpMethodPointcut"  class="org.springframework.aop.support.JdkRegexpMethodPointcut">     <property name="patterns">        <list>          <value>.*ost</value>          <value>.*tart</value>        </list>     </property>     <property name="excludedPatterns">        <list>          <value>.*tart</value>        </list>     </property> </bean>

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

在该例中,patterns属性是一个java.lang.Sring[]类型的数组,表示数组中所有和定义的正则表达式匹配的方法都包含在定义的切入点内。excludedPatterns则相反,表示被排除于切入点范围的方法。同时和NameMatchMethodPointcut一样,它也可以用ClassFilter类型的classFilter属性来定义类过滤器。

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

本文地址:http://www.blogjava.net/cmzy/archive/2008/08/09/220910.html)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号