首页 > Spring aop 拦截自定义注解问题

Spring aop 拦截自定义注解问题

是自定义了一个注解,可以用于方法,和类上面使用

@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME) 
@Documented
public @interface DynamicDataSource {
    String value() default "master"; 
}

然后在使用aop的切面,定义了一个注解拦截

//@Pointcut(value="execution(* com.xxoo.smart.service..*(..))")
@Pointcut(value="@annotation(com.xxoo.smart.commons.annotation.DynamicDataSource)")
    public void aspect(){    }

然后通过

public static void main(String[] args){   
        ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml");      
        IOrderService us = (IOrderService) ctx.getBean("orderServiceImpl0000");  
        us.test("aaaaaaaaaaaa");  
    } 

测试,如果使用第一个表达式拦截,在类上面使用定义注解,可以被拦截到,但是如果使用注解的方式拦截。是不会进入的。为什么?

【热门文章】
【热门文章】