是自定义了一个注解,可以用于方法,和类上面使用
@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");
}
测试,如果使用第一个表达式拦截,在类上面使用定义注解,可以被拦截到,但是如果使用注解的方式拦截。是不会进入的。为什么?