ProceedingJoinPoint获取不到参数问题
这几天刚开始学Spring Boot 边看书,边跟着书打代码
学到AOP的时候,书中有这么一段代码
@Around("@within(org.springframework.stereotype.Controller)")
public Object simpleAop(final ProceedingJoinPoint pjp) throws Throwable {
try{
Object[] args = pjp.getArgs();
System.out.println("args:" + Arrays.asList(args));
//调用原有的方法
Object o = pjp.proceed();
System.out.println("return:" + o);
return o;
} catch (Throwable e){
throw e;
}
}
监听所有的Controller,获取访问时的参数(http://127.0.0.1:8080/sayhello.html?name=b&age=11),并输出
Controller也是跟着书打的,对照过,没有任何问题,可就是死活获取不到参数,搜了很久,都没找到解决方法。
以前上学的时候学过Spring,突然想起来是不是因为Controller那边没接收参数,然后就尝试的接收了下参数,然后切片这边的pjp就能正常获取到参数了
这书也真的是的,代码没体现要接收,起码也得提一嘴吧,一嘴的都不提
附上正常的Controller代码:
@Controller
public class HelloWorldController {
@RequestMapping("/sayhello.html")
public @ResponseBody String sayHello(@RequestParam("name") String name, @RequestParam("age") int age) {
return "hello spring boot" + name + age;
}
}