SpringBoot-ブロックに@Autowired修飾beanを追加


一、前言
最近のプロジェクト要件:
ブロッキングでのチェックtokenしかし、私のtokenはデータベースに保存されています(まだRedisに保存されていません.
では、質問が来ました.
ブロッキングの具体的な実装クラスで、データベースをクエリーします???
二、具体的な実現
以前はHandlerInterceptorの実装クラスに直接追加されました.
@Autowired private IUserService userServiceImpl;
結局爆発!
あとで
registry.addInterceptor(new BaseInterceptor(userSericeImpl)).addPathPatterns("/airapi/**");
結果は想像できる: !
その後、次のように構成操作を行いましたが、成功しました.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import cn.linkpower.config.base.BaseInterceptor;
import cn.linkpower.service.IUserService;

/**
 * web      
 * 
 * @author 765199214
 *
 */
@Configuration
public class InterceptorConfiguration implements WebMvcConfigurer {
	private Logger log = LoggerFactory.getLogger(InterceptorConfiguration.class);
	
	@Autowired
	private BaseInterceptor baseInterceptor;
	
	/**
	 * web/app      
	 */
	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		this.log.info("cn.linkpower.config.InterceptorConfiguration----addInterceptors");
		registry.addInterceptor(baseInterceptor).addPathPatterns("/airapi/**");
		//WebMvcConfigurer.super.addInterceptors(registry);
	}
	
	/**
	 *     
	 */
	//@Override
	//public void addCorsMappings(CorsRegistry registry) {
	//	registry.addMapping("/**")
	//	        .allowedOrigins("*")
	//	        .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
	//	        .allowCredentials(true)
	//	        .maxAge(3600)
	//	        .allowedHeaders("*");
	//}
}

実装クラス:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import cn.linkpower.enums.LoginEnum;
import cn.linkpower.enums.TokenEnum;
import cn.linkpower.file.UserProperties;
import cn.linkpower.service.IUserService;
import cn.linkpower.service.impl.UserServiceImpl;
import cn.linkpower.util.DateTimeUtils;
import cn.linkpower.util.ObjectUtils;
import cn.linkpower.util.ResponseWriteUtils;
import cn.linkpower.vo.UserList;

@Service
public class BaseInterceptor implements HandlerInterceptor {
	private Logger log = LoggerFactory.getLogger(BaseInterceptor.class);
	
	@Autowired
	private IUserService userServiceImpl;
	

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
			//  -----
			// do something
			//  -----
		return true;
	}
	
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		this.log.info("cn.linkpower.config.base.BaseInterceptor--postHandle");
		
	}
	
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		this.log.info("cn.linkpower.config.base.BaseInterceptor--afterCompletion");
	}
}