@Configuration public class OptPermissionHandlerInterceptor extends HandlerInterceptorAdapter { private Logger logger = LoggerFactory.getLogger(OptPermissionHandlerInterceptor.class); @Autowired private OperatorLogService operatorLogService; //这里使用@Autowired无法注入成功 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (true) { return true; } else { String result = "当前登录用户无权限!"; response.getOutputStream().write(result.getBytes()); response.setStatus(HttpStatus.OK.value()); return false; } } @SuppressWarnings("rawtypes") @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { try { if (handler instanceof HandlerMethod) { HandlerMethod handlerMethod = (HandlerMethod) handler; String beanName = handlerMethod.getBean().getClass().toString(); String methodName = handlerMethod.getMethod().getName(); String uri = request.getRequestURI(); String remoteAddr = request.getRemoteAddr(); String sessionId = request.getSession().getId(); OperatorLog optLog = new OperatorLog(); optLog.setBeanName(beanName); optLog.setMethodName(methodName); optLog.setRemoteAddr(remoteAddr); optLog.setSessionId(sessionId); optLog.setUri(uri); if (operatorLogService == null) {//解决service为null无法注入问题 System.out.println("operatorLogService is null!!!"); BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext()); operatorLogService = (OperatorLogService) factory.getBean("operatorLogService"); } operatorLogService.saveOperatorLog(optLog); } } catch (Exception e) { logger.error("", e); } } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
spring boot 拦截器中无法注入serivce
最新推荐文章于 2022-08-28 15:38:08 发布