AOP中拦截Controller中的参数值

1.获取普通的传参

eg: http://…url…?param=value
此类形式的AOP参数获取可以用以下方式

@Before("StuInfoAsp()")
    public void doBefore(JoinPoint joinPoint){
        ServletRequestAttributes sc = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = sc.getRequest();
         logger.info("uri--"+request.getRequestURI());
        logger.info("port--"+request.getServerPort());
        logger.info("ip--"+request.getRemoteHost());
        logger.info("method"+request.getMethod());
		logger.info("value"+request.getQueryString());
    }

2.获取@PathVariable中的传参

eg:http://…url/value
发现上面的方式获取不到,于是采用以下方法

Controller

@GetMapping("/{word}")
    @ApiOperation(value = "通过学号或者姓名找到学生信息")
    @ApiImplicitParams({@ApiImplicitParam(name = "word",value = "姓名或学号",required = true,dataType = "String")})
    public List<StuInfo> getOneStu(@PathVariable("word") String word){
        return stuInfoDao.findStuByNameOrNo(word);
    }

AOP

@Before("StuInfoAsp()")
    public void doBefore(JoinPoint joinPoint){
    	ServletRequestAttributes sc = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = sc.getRequest();
        Map map = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
        String word = map.get("word").toString();
        logger.info(word);
    }

记得点赞加关注o!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值