`

spring笔记

阅读更多
常见Pointcout
1.NameMatchMethodPointcut
NameMatchMethodPointcut pointcut =new NameMatchMethodPointcut();
pointcut.setMappedName("matches");
//或多个方法
pointcut.setMappedNames(new String[]{"matches","isRuntime"});

2.JdkRegexpMethodPointcut、Perl5RegexpMethodPointcut
JdkRegexpMethodPointcut pointcut=new JdkRegexpMethodPointcut();
pointcut.setPattern(".*match.*");
//或者
pointcut.setPatterns(new String[](".*match.*",".*matches"});

3.AnnotationMatchingPointcut
@ClassLevelAnnotation
public class GenericTargetObject{
   @MethodLevelAnnotation
   public void method1(){....};
   public void method2(){....};
}

只匹配Class
AnnotationMatchingPointcut pointcut=new AnnotationMatchingPointcut(
   ClassLevelAnnotation.class);

或者用静态方法
AnnotationMatchingPointcut pointcut=AnnotationMatchingPointcut.forClassAnnotation(
   ClassLevelAnnotation.class);

只匹配Method
AnnotationMatchingPointcut pointcut=new AnnotationMatchingPointcut(
   MethodLevelAnnotation.class);

或者用静态方法
AnnotationMatchingPointcut pointcut=AnnotationMatchingPointcut.forMethodAnnotation(
   MethodLevelAnnotation.class);


匹配Class及Method
AnnotationMatchingPointcut pointcut=new AnnotationMatchingPointcut(
   ClassLevelAnnotation.class,MethodLevelAnnotation.class);

4.ComposablePointcut
5.定制Pointcut
  继承StaticMethodMatcherPointcut
  继承DynamicMethodMatcherPointcut




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics