原文:https://my.oschina.net/u/1790105/blog/1490098

这两天遇到SpringBoot拦截器中Bean无法注入问题。下面介绍我的思考过程和解决过程:

1.由于其他bean在service,controller层注入一点问题也没有,开始根本没意识到Bean无法注入是在拦截器中无效的问题,一直在查找注解指定的包在哪里配置的,然而却找不到配置,Springboot是用java类的形式加载配置的。在网络的某个角落看到这样的说法:

SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描!
“Application类”是指SpringBoot项目入口类。这个类的位置很关键:
如果Application类所在的包为:com.boot.app,则只会扫描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,则不会被扫描!
即, 把Application类放到dao、service所在包的上级,com.boot.Application
知道这一点非常关键,不知道spring文档里有没有给出说明,如果不知道还真是无从解决。

我出问题的类确实在Application类子包下面,看来不是这方面问题。

2.开始意识到只是拦截器上会有这样的问题,查询原因应该是:

拦截器执行在自动bean初始化之前导致这个问题的。

那就只是在拦截器中出现该问题了,解决办法如下:

首先上图是我的拦截器和要注入的iRedisUtil对象,出问题的就是这个iRedisUtil。

要解决问题是在项目中继承“WebMvcConfigurerAdapter”类的类中添加拦截器类作为一个Bean,如下:

现在去运行,发现iRedisUtil对象有值了。

最新文章

  1. scrapy 和 scrapy_redis 安装
  2. 非常郁闷的 .NET中程序集的动态加载
  3. html学习第二天—— 第八章—— CSS选择器
  4. 【转】XPath的学习
  5. Oracle创建、删除表空间、用户
  6. Windows Azure上搭建SSTP VPN
  7. php 计算本月第一天 本月最后一天 下个月第一天
  8. HDU 1233 还是畅通工程 (最小生成树)
  9. [转发]Gulp开发教程(翻译)
  10. [ZT]DAS\NAS\IP SAN\FC SAN之区别
  11. DirectX SDK版本与Visual Studio版本
  12. ubuntu13.10 下一个 g++和gcc 4.8不兼容的问题不能被安装
  13. Java编程思想笔记(第二章)
  14. 读Zepto源码之Stack模块
  15. hdu 1130 How Many Trees?(Catalan数)
  16. hive笔记:复杂数据类型-map结构
  17. java在window下用cmd (javac、jar)命令行模拟Intellij IDEA软件生成jar包
  18. PHP stdClass类
  19. codeforces 735D Taxes(数论)
  20. A. On The Way to Lucky Plaza 概率 乘法逆元

热门文章

  1. apache工作模式
  2. android View实现变暗效果
  3. 单源最短路模板_SPFA_Dijkstra(堆优化)_C++
  4. PHP性能追踪及分析工具xhprof的安装与使用
  5. 24式太极拳:3D动画演示(图文)
  6. Atos cannot get symbols from dSYM of archived application
  7. 自旋锁spin_lock和raw_spin_lock【转】
  8. Linux实现利用SSH远程登录服务器详解
  9. Backbone Model 源码简谈 (版本:1.1.0 基础部分完毕)
  10. ANSI、ASCII、Unicode和UTF-8编码