自定义注解

Blade 未结 1 652
zhangyaoyu
zhangyaoyu 剑圣 2021-04-09 15:19

一、该问题的重现步骤是什么?

1. copy下面的代码,并修改@Before里的包名

2. 新建一个controller类,以及方法,并在方法上加@TokenValidate

3.添加该方法到BladeConfiguration的secureRegistry.excludePathPatterns("")

4.运行

二、你期待的结果是什么?实际看到的又是什么?

期望调用方法时先调用注解里的代码;

实际没有调用注解里的代码,直接进入方法内。

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX-Boot 2.8.0    win10

四、请提供详细的错误堆栈信息,这很重要。

无错误

五、若有更多详细信息,请在下面提供。

参照PreAuth写的注解代码:

@Target({ElementType.METHOD, ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

public @interface TokenValidate {}


@Aspect

@Order(1)

public class JwtTokenAspect{


/**

 * 切方法 @TokenValidate 注解

 *

 * @param point 切点

 * @return Object

 * @throws Throwable 没有权限的异常

 */

@Before("execution(public * org.springblade.modules.busi.controller.*(..)) && @annotation(org.springblade.common.annotations.TokenValidate)" )

public Object tokenValidate(ProceedingJoinPoint point) throws Throwable {

              System.out.print("123");

            return point.proceed();

         }



1条回答
  • 2021-04-09 15:42

    注解切面参考如下写法

    image.png

    0 讨论(0)
提交回复