springboot拦截器传参到controller
时间: 2023-06-25 08:08:16 浏览: 284
在Spring Boot中,可以通过拦截器(Interceptor)将参数传递给Controller。以下是一个示例:
首先,定义一个拦截器,实现HandlerInterceptor接口。在拦截器中,可以通过request.setAttribute()方法将参数设置到request对象中。
```java
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setAttribute("paramName", "paramValue");
return true;
}
// 省略其他方法
}
```
然后,在Spring Boot中配置拦截器,并添加拦截路径。
```java
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Autowired
private MyInterceptor myInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myInterceptor).addPathPatterns("/api/**");
}
}
```
最后,在Controller中,可以通过@RequestParam注解或@PathVariable注解获取参数。
```java
@RestController
@RequestMapping("/api")
public class MyController {
@GetMapping("/test")
public String test(@RequestParam("paramName") String paramValue) {
return "paramValue: " + paramValue;
}
}
```
这样就可以在拦截器中传递参数,并在Controller中获取参数了。
阅读全文