关于HandlerInterceptorAdapter子类中无法自动注入问题
区别与网上所说的Bean注解(实测无效)
------直接上代码------
- 拦截器部分处理,注解交由spring托管,HandlerInterceptorAdapter 中的响应方法,请自行重写
@Component
public class MyHandlerInterceptorAdapter extends HandlerInterceptorAdapter {
// 先处理资源(比如要注入jwt校验)
private static JwtUtil jwtUtil;
@Resource
private void setJwtUtil(JwtUtil jwtUtil){
MyHandlerInterceptorAdapter.jwtUtil = jwtUtil;
}
// 然后调用jwtUtil中的方法
jwtUtil.createJWT......
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) {
........
}
}
- 注册拦截器,注意,这里注册的时候,HandlerInterceptorAdapter子类必须是交给spring托管后的子类,即在步骤1上的MyHandlerInterceptorAdapter 类上需加入@Component注解
@Configuration
@EnableWebMvc
public class MyWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
/**
* 注册拦截器
*
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyHandlerInterceptorAdapter());
super.addInterceptors(registry);
}
}
至此,解决!