【发布时间】:2020-06-14 11:16:48
【问题描述】:
基于一些业务逻辑,我需要在请求到达控制器之前将查询参数添加到请求中。为了实现这一点,我使用了 HandlerInterceptorAdapter 来拦截请求。 我有一个公共库,我在其中定义了一个拦截器,并且依赖项目具有控制器。 拦截器正在注册,但是当我调用任何 api 调用时,它不会被调用。
公共库中的拦截器
@Component
public class RequestInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, java.lang.Object handler)
throws ServletException, IOException {
request.setAttribute("id", "123"); // this would be populated based on logic
return true;
}
}
依赖
@Configuration
public class Resolver implements WebMvcConfigurer {
@Autowired
RequestInterceptor interceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(interceptor);
}
}
【问题讨论】:
-
你的
Resolver配置真的在启动时被调用了吗? -
是的,它正在被调用。
标签: java spring-boot