【Spring】Service 注入失败,空指针
service层的类都有用@Service标识,但报空指针,注入失败,很可能是因为spring的application配置和springmvc的配置文件配置错误,导致容器冲突了。
spring和springmvc整合后,项目会有2个容器,一个是spring容器,一个是springmvc容器
spring容器是父容器,springmvc容器是spring容器的子容器。
spring容器初始化后,springmvc再进行初始化,并将spring容器作为它的父容器。
子容器能够访问父容器的bean,而反之不行。
两个容器的关系大概就是上述文字所表达的。
如果spring的配置文件application.xml中
<context:component-scanbase-package="com.test.*"/>
此路径和
springmvc配置文件中
<context:component-scanbase-package="com.test.*"/>
路径一致,或者是父容器初始化的路径包括了子容器。
那么,当springmvc容器初始化时,如果发现有相同的类,会将新初始化的实例覆盖spring容器中已经存在的实例,这可能会导致注入失败,空指针的问题。
假如我们的controller里面引用了service,并且spring的配置文件初始化时扫描了全部的实例包括springmvc的controller并初始化,接着,springmvc容器初始化时,就会将spring容器中的controller实例覆盖掉。这个时候就会出错了,新的controller实例中的service就会出现找不到实例的情况。
所以解决方法是,2个容器扫描的包必须相互区分,互不干扰。spring容器扫描非controller的实例,而springmvc容器扫描controller的实例就行。
【Spring】Service 注入失败,空指针相关推荐
- 【quartz】quartz定时任务service注入失败
quartz定时任务service注入失败的详细的原因我查了查是这样的: Job是在quartz的框架中实例化的,service是在spring容器中创建出来的,所以Job实现类不受spring管理, ...
- java service注入失败,使用spring向service里面注入dao不成功。
使用spring向service里面注入dao不成功.求救啊! 本帖最后由 PaperStar 于 2013-12-26 19:29:20 编辑 页面调用action,action调用service, ...
- Spring Autowired 注入失败总是Null
报错:NullPointerException 分析:错误原因是注入失败? <context:annotation-config/> <context:component-scan ...
- spring依赖注入失败原因
今天碰到一个奇葩项目,一朋友叫我帮忙解决一下ssh项目错误,我看了一下代码,内容很简单,基本上也都是些小错误,改完后运行,结果就报了个依赖注入失败失败,先贴上错误信息: 严重: Context ini ...
- SpringBoot中service注入失败(A component required a bean of type ‘XXService‘ that could not found)...
先写了JUnit,发现启动不了,注释掉有问题的service也不可以.可能是因为spring开始时会加载所有service吧. 按照网友们的说法,一般需要检查: 1.入口类有没有写MapperScan ...
- SpringBoot中service注入失败 出现A component required a bean of type 'com.czxy.changgou3.mapper.OrderGoodsMa
错误信息 Error starting ApplicationContext. To display the conditions report re-run your application wit ...
- Service注入不进去
控制台报service注入失败 <context:component-scan base-package="com.service.*"/> 路径没有错误 检查发现没有 ...
- SpringAOP导致@Autowired依赖注入失败
用springAOP做操作日志记录,发现:方法为private修饰的,在AOP适配的时候会导致service注入失败,但是同一个service其他的public方法正常 public static b ...
- 踩坑:Spring静态变量/构造函数注入失败(注入为null)问题的解决方案
1.案例1:Spring对静态变量的注入为空 案例代码如下: @Component public class HelloWorld {/*** 错误案例:这种方式是不能给静态变量注入属性值的*/@Va ...
最新文章
- P1516 青蛙的约会
- 三种方式实现日志记录
- Promise.race 的原理
- ibmmq 通道命令_IBM MQ 使用指南
- linux各种查看端口号
- 合并table中某一列相邻的相同的行
- PAT1021 Deepest Root
- oracle 以1开头以9结尾_小学生记叙文写作技巧六——如何把握好文章的开头和结尾呢?...
- 大数据在电力行业的应用前景有哪些?
- Chrome 中迅雷的插件(正确的下载地址)下载以及安装(一)
- (12) 基于深度时空残差网络ResNet的城市交通流预测
- 如何把几张图片合并成一张图片?
- [译]写给初学者的Tensorflow介绍 - 2
- 光纤跳线接口_综合布线与弱电工程:跳线、尾纤、光纤接口,一文讲明白
- 基于C++的web服务器---总述篇
- 整合springmvc+mybatis+veloctiy二
- Python带我飞:50个有趣而又鲜为人知的Python特性
- 谈谈浏览器中富文本编辑器的技术演进
- 树莓派自定义游戏,Minecraft硬件编程,建造房屋,我的世界还可以这样玩
- 第一章第六天Java基础语法 嵌套循环