Аннотация:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface IbatisAnno {}
Аспект:
@Component
@Aspect
public class IbatisAsepct {
//not works
@Pointcut("@annotation(xxx.IbatisAnno)")
public void m(){}
//works
@Pointcut("execution(* xxx.xxDAO.*(..))")
public void m2(){}
@Before("m()")
public void testM(){
System.out.println("Before Method...............");
}
@Before("m2()")
public void testM2(){
System.out.println("Before Method2...............");
}
}
Целевой класс:
@EnableAspectJAutoProxy()
public class IbatisOfferFeedDAO extends SqlMapClientDaoSupport implements OfferFeedDAO{
@IbatisAnno
public void xxx(){
this.getSqlMapClientTemplate().insert();
}
}
Формат не действует при использовании @Pointcut("@annotation(xxx.IbatisAnno)")
, но работает при использовании @Pointcut("execution(* xxx.xxDAO.*(..))")
.