springboot 拦截器取不到dubbo的服务类信息

假如这是你定义的拦截器:

/**
 * 用户登录处理拦截器
 */
public class LoginInterceptor implements HandlerInterceptor{
	
	@Reference
	private TokenService tokenService;
	
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		
		// 前处理,执行handler之前执行此方法。
		//返回true,放行	false:拦截
		return false;
	}
	
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
			throws Exception {
		//handler执行之后,返回ModeAndView之前
		
	}
	
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		//完成处理,返回ModelAndView之后。
		//可以再此处理异常
		
	}
}

解决办法:
配置拦截器的,需要重新写一个获取拦截器LoginInterceptor的方法,在方法上面加上@Bean注解,这样就可以在LoginInterceptor中拿到TokenService的对象啦~~

/**
 * 拦截器配置
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		// 登录状态拦截器
		registry.addInterceptor(loginInterceptor()).addPathPatterns("/cart/**");
	}

	@Bean
	public LoginInterceptor loginInterceptor() {
		return new LoginInterceptor();
	}
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值