spring boot 自定义注解(类、方法)

正常切面aop 需要引入 aop的包 

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-aop</artifactId>
 </dependency>

自定义注解


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//METHOD--的就是这个注解可以作用在方法上
//TYPE--的就是这个注解可以作用在方法上
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface AeqAuth{
    String lanjie() default "";//这个根据你自己的逻辑写
}

切面类 

@Aspect
@Component
@Slf4j
public class AuthAspect {

    //定义切点 @Pointcut
    //在注解的位置切入代码
    //@annotation  作用在方法上
    //@within      作用在类上
    @Pointcut("@annotation(com.example.annotation.ReqAuth)")
    public void authPointCut() {
    }

    @Before(value = "authPointCut() && @annotation(reqAuth)")
    public void before(JoinPoint point, ReqAuth reqAuth) {
        //XXX
    }
}

这个里面要注意的是 
   @annotation  作用在方法上
   @within      作用在类上


版权声明:本文为keizhige原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。