匹配注解:

433222222222222222222222222222222
匹配注解注解
@within和@target两个注解可在被标注类的继承子类所继承
public class AnnoAspectConfig {
@Pointcut("@within(com.imooc.anno.NeedSecured) && within(com.imooc..*)")
// @Pointcut("@target(com.imooc.anno.NeedSecured) && within(com.imooc..*)")
public void matchAnno(){}
匹配注解
//匹配方法标注有AdminOnly的注解的方法
@Pointcut("@annotation(com.imooc.demo.security.AdminOnly)")
public void annoDemo(){}
//匹配标注有Beta的类底下的方法,要求的annotation的RetentionPolicy级别为CLASS
@Pointcut("@within(com.google.common.annotations.Beta)")
public void annoWithinDemo(){}
//匹配标注有Repository的类底下的方法,要求的annotation的RetentionPolicy级别为RUNTIME
@Pointcut("@target(org.springframework.stereotype.Repository)")
public void annoTargetDemo(){}
//匹配传入的参数类标注有Repository注解的方法
@Pointcut("@args(org.springframework.stereotype.Repository)")
public void annoArgsDemo(){}
public class AnnoAspectConfig {
@Pointcut("@annotation(com.imooc.anno.AdminOnly)
public void matchAnno(){}
@Before("matchAnno()")
public void before(){
System.out.println("");
System.out.println("###before");
}
}
/**
* * Created by cat on 2017-02-19.
在被拦截类上添加方法上添加@AdminOnly注解
*/
@Component
public class LogService implements Loggable{
@Override
@AdminOnly
public void log() {
System.out.println("log from LogService");
}
public void annoArg(Product product){
System.out.println("execute log service annoArg");
}
}
匹配注解:
匹配注解示例
匹配注解 @annotation @within @target @args
注解匹配...
注解匹配...
匹配注解
//匹配方法标注有AdminOnly的注解的方法
@Pointcut("@annotation(com.imooc.demo.security.AdminOnly)")
public void annoDemo(){}
//匹配标注有Beta的类底下的方法,要求的annotation的RetentionPolicy级别为CLASS
@Pointcut("@within(com.google.common.annotations.Beta)")
public void annoWithinDemo(){}
//匹配标注有Repository的类底下的方法,要求的annotation的RetentionPolicy级别为RUNTIME
@Pointcut("@target(org.springframework.stereotype.Repository)")
public void annoTargetDemo(){}
//匹配传入的参数类标注有Repository注解的方法
@Pointcut("@args(org.springframework.stereotype.Repository)")
public void annoArgsDemo(){}
aop匹配注解
匹 配 注 解
匹配注解!
匹配注解匹配注解匹配注解匹配注解
匹配注解匹配注解
匹配注解,一般使用匹配方法的注解
演示annotation
注解匹配四个方法
通过注解匹配