Spring AOP - 切入带注释的注释

时间:2017-03-24 19:29:07

标签: java spring annotations aspectj spring-aop

请有人帮助我。我想用spring AOP创建一个切入点,拦截所有带注释注释的方法都是另一个继承。

在我的例子中,我想要c

TaskControl.class

@Documented
@Target({METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RUNTIME)
@Inherited 
public @interface TaskControl {

    /**
     * taskSelectorAnnotation
     * @return
     */
    Class<? extends Annotation>[] value() default {}; 
}

TypeTaskCriteria.class

@Documented
@Target({METHOD})
@Retention(RUNTIME)
@TaskSelectorStrategy(value = TypeTaskSelector.class)
@TaskControl
public @interface TypeTaskCriteria {

    Class<?> genericType() default void.class;

    boolean defaultPreTask() default true;

    Class<? extends Task>[] pre() default {};

    boolean defaultPostTask() default true;

    Class<? extends Task>[] post() default {};

}

ExampleTest.class有一个方法,如下所示:

    @TypeTaskCriteria(pre = PreRetrieveTask.class, post = PostRetrieveTask.class)
    public Page<T> retrieve(Integer pageNumber,
        Integer pageSize,
        String filterExpression,
        String sortExpression,
        String expandExpression,
        Map<String, String> parameters) throws InvalidParameterException, UnexpectedException {

我的切入点是:

    @Around("@annotation(br.org.ccee.fusion.core.api.task.TaskControl)")
    public Object executeChains(ProceedingJoinPoint pjp) throws Throwable {

(如果我改为TypeTaskCriteria,切入点工作正常)

有人有一个anwser ????

谢谢!!!!

Valdir Scarin

0 个答案:

没有答案