Poincut没有良好的形式

时间:2017-07-02 19:02:15

标签: java aspectj

想象一下,在我正在开发的应用程序中,需要对每个应用程序进行排序 返回的对象,来自具有这些特征的任何方法:

  • 该方法位于包my.sorted或其任何子包中
  • 返回的对象实现List接口
  • 该方法具有@Sorted注释

我想创建一个名为SortingAspect的Aspect,其中包含:

  • 所需中断点的切入点
  • 执行预期功能的建议

在这种情况下,我来到了这段代码:

MyClass的:

public class MyClass {

    @Sorted
    public List<Integer> myFunction(){
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(20);
        list.add(3);
        list.add(-4);
        list.add(5);
        list.add(200);
        list.add(34);
        return list;
    }
}

排序。

public @interface Sorted {

}

SortedAspect:

@Aspect
public class SortingAspect {
    @Pointcut ("call(* my.sorted..* (..)) && @annotation(Sorted)")
    public void sortFuncPointCut() {}

    @Around("sortFuncPointCut()")
    public List<Integer> sortAdvice(ProceedingJoinPoint pjp) throws Throwable {
        List<Integer> list = (List<Integer>)pjp.proceed();
        Collections.sort(list);
        return list;
    }

}

问题: 问题是@Around没有捕获任何Poincut,我无法理解为什么。

0 个答案:

没有答案