spring boot 拦截器中无法注入serivce
2016-12-09 10:19
465 查看
摘要: 最近在项目中用拦截器去拦截用户操作,并对操作日志进行记录, 在拦截器中记录日志时调用service 层 的save方法,发现service为null ,通过
@Autowired
private LogService logService;
这种方式无法注入;解决办法看以下代码。
@Autowired
private LogService logService;
这种方式无法注入;解决办法看以下代码。
[code=language-java]@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
- SpringBoot拦截器中Bean无法注入(转)
- spring boot LoginInterceptor(登录拦截器)无法注入bean
- SpringBoot中拦截器无法注入Bean的解决办法
- springboot的拦截器如何注入service为空的问题解决方式
- RepositoryRestHandlerMapping在springboot中无法注入
- 【SpringBoot】拦截器使用@Autowired注入接口为null解决方法
- 关于spring boot无法自动注入bean问题解决方案
- SpringBoot拦截器中service或者redis注入为空的问题
- 已经解决 spring boot 拦截器中注入bean
- springboot 拦截器注入不进service
- 【SpringBoot】拦截器使用@Autowired注入接口为null解决方法
- Spring boot 启动类位置导致类无法注入问题
- SpringBoot bean无法注入的问题
- Shiro解决无法注入Service问题(包括Spring MVC和Spring Boot)
- 详解SpringBoot 解决拦截器注入Service为空问题
- SpringBoot bean无法注入
- spring boot 拦截器 注入dao 操作数据库时dao 为null
- 解决spring boot websocket无法注入bean的问题
- 解决spring boot 拦截器中无法注入serivce