传递参数注解@PathVariable,@RequestParam和RequestBody区别
针对一些非必填的参数,可以使用required关键字来标识,同时必须设置默认值defaultValue,如对price参数的获取:
@RequestParam(value = "price",required = false,defaultValue = "0") Integer price
拦截器设置
spring设置了拦截器,通过实现HandlerInterceptor接口转换为拦截器类,实现pre、post、after方法;其中after方法即使抛出异常也会执行,而post不会。并通过@Component注解将该类交给spring管理。
拦截器注册:在启动类中实现WebMvcConfigurer接口中的addInterceptors;
@Autowired
private AuthFilter authFilter;//自定义拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authFilter).addPathPatterns("/merchants/*");//定义拦截路径
}
本文详细解析了Spring框架中传递参数的三种注解@PathVariable、@RequestParam和@RequestBody的区别,以及如何使用required和defaultValue属性处理非必填参数。此外,还介绍了如何通过实现HandlerInterceptor接口创建自定义拦截器,并在启动类中注册,实现请求前后的处理逻辑。

21万+

被折叠的 条评论
为什么被折叠?



