LongStaying 2019-07-17 15:50 采纳率: 83.3%
浏览 2483
已采纳

参数上使用自定义注解在aop中无法获取到该参数

目标方法:

    @ApiOperation(value="testRedis")
    @RequestMapping(value = "/testRedis", method = RequestMethod.GET)
    @DropDownSearch(key =  "'bdt0010_'+#projectId")
    public Object redisTest(String projectId, @SearchKeyWord  String value){
        System.out.printf("");
        return BaseResult.successResultCreate("test",bdt0010Service.redisTest(projectId));
    }

其中@DropDownSearch为自定义方法注解
@SearchKeyWord为自定义参数注解

在Aspect使用环绕通知:

public Object doAfterClearRedisCache(ProceedingJoinPoint joinPoint) throws Throwable {
        //Class<?> targetClass = joinPoint.getTarget().getClass();
        //获得参数列表
        Object[] args = joinPoint.getArgs();
                }

getArgs方法无法获取被@SearchKeyWord标记的参数对象。
此前未使用@SearchKeyWord注解时一切均正常。
请问是什么问题?

  • 写回答

2条回答 默认 最新

  • LongStaying 2019-07-22 16:50
    关注

    实际问题在于swaggerui标注的方法中,当方法参数被自定义注解标记后,该参数被认为是body类型,在使用swagger测试时无法正确将参数值传递到后台。
    只需为参数再加上

    @RequestParam(required = false)
    

    即可

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 急,ubuntu安装后no caching mode page found等
  • ¥15 防火墙的混合模式配置
  • ¥15 Ubuntu不小心注销了要怎么恢复啊
  • ¥15 win10电脑安装完plcsim advanced4.0运行时为什么会提示找不到虚拟网卡
  • ¥15 安装powerbuilder10卡在安装程序正在运行这个页面 没有下一步任何指令
  • ¥15 关于mpi的问题:请问遇到这种情况需要怎么解决,出现这个问题后电脑不能进行mpi多核运行只能进行单核运行
  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写