使用aop拦截自定义注解
创始人
2024-03-07 07:23:55
0

场景:第三方调用校验是否有权限,就是常规的校验appId和secret,一个项目中有自己公司服务调用的也有第三方调用的
思路:在第三方调用的方法上添加一个自定义注解,在用aop拦截这个自定义注解

1.先自定义一个注解

@Documented
@Target({ElementType.METHOD})
@Inherited
@Retention(RetentionPolicy.RUNTIME )
public @interface OpenApi {/*** 开放平台的接口编码* @return*/String encode() default "";
}

2.定义aop拦截 有该注解的方法或类(注解应用范围具体看注解的Target配置,OpenApi是应用到方法)

@Aspect
@Order(-1)// 保证该AOP在@Transactional之前执行
@Component
@Slf4j
public class OpenApiAdvice {@Autowiredprivate IVerifyService iVerifyService;//调用的方法有该注解才会拦截@Pointcut("@annotation(com.cunw.cloud.dataworks.annotation.OpenApi)")private void annotationPointCut() {}//环绕 满足上面的拦截条件就会调用该方法@Around("annotationPointCut()")public Object annotationAround(ProceedingJoinPoint joinPoint) throws Throwable {//获取方法Method method = ((MethodSignature) joinPoint.getSignature()).getMethod();//得到方法参数  这里是一个数组,因为我这里只有一个参数所以写了[0]Object args = joinPoint.getArgs()[0];// 获取该方法上的 OpenApi注解OpenApi aspectAnnotation = method.getAnnotation(OpenApi.class);//注解的方法(就是注解里定义的值)String encode = aspectAnnotation.encode();//写你的业务逻辑//校验appId,sign等参数iVerifyService.verify(args, openApiVO.getSecret());//正常往后执行return joinPoint.proceed();}}

3. 最后  想想 拦截器和aop有什么区别?

相关内容

热门资讯

榆林市第二期工信领域争资争项暨... 阳光讯(记者 张壮壮)为进一步助力榆林市工信系统及重点企业精准把握惠企政策导向,帮助企业争取更多项目...
个人征信修复政策出台 警惕“收... 山西晚报·山河+讯(记者 辛戈)个人信用可获官方“免申即享”式修复,但“收费洗白”的新骗局也随之冒头...
代表人诉讼步入常态化 年内投资... 证券时报记者 孙宪超 科创信息12月23日晚公告,当日公司和相关责任人收到中国证监会湖南监管局下发的...
金鸿控股集团股份有限公司 关于... 本公司及董事会全体成员保证信息披露的内容真实、准确、完整,没有虚假记载、误导性陈述或重大遗漏。 特别...
用好“政策+改革”,海南自贸港... 12月18日,海南自由贸易港正式启动全岛封关,步入建设新阶段。 回望来时路,一组亮眼数据勾勒出海南对...
公布《行政执法监督条例》 新华社北京12月23日电 国务院总理李强日前签署国务院令,公布《行政执法监督条例》(以下简称《条例》...
加快制造业中试平台高水平建设(... 四川成都高新区蜂鸟智造中试基地,洁净的车间里,数条中试生产线运转,助推科研项目“跑完”走向市场的“最...
进一步发挥房地产项目“白名单”... ● 本报记者 王舒嫄 12月22日至23日,全国住房城乡建设工作会议在北京召开。会议提出,要进一步发...
双阳法院:运用调解方式 化解行... 随着法治建设的深入推进,人民群众的法治意识和维权意识不断提高,行政案件逐渐增长,而行政争议发生在“官...
凌源钢铁股份有限公司关于诉讼进... 本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、...