坑人的context-param,让我记忆深刻

         今天初次学习springMVC的时候,我跟着视频老师边听边做。按照老师的思想就是需要先用spring初始化一个父容器,用来管理一些底层公用的Bean,例如dao,service这些,然后用springMVC初始化一些上层的bean,例如controller,而springMVC本身就属于spring功能的一部分,他自己也有一个容器,是继承的spring父容器的一个子容器。那么父容器中的bean对于子容器就可用,反过来就不行。于是我分了spring的配置文件applicationContext.xml和springMVC的配置文件mvc-dispatcher-servlet.xml.
在spring的配置文件applicationContext.xml中,我用注解扫描service的包,并且过滤掉controller,如
然后在 springMVC的配置文件 mvc-dispatcher-servlet.xml中配置扫描controller.
于是在web.xml中配置加载spring和springMVC -dispatcher的上下文以及相应的类
启动tomcat,出现问题了,发现本应该在父容器中实例化的service层的bean(test)无法注入到springMVC的子容器中的controller中,原因是该bean(test)未被实例化,
进一步测试发现spring好像就和没有启动一样,因为他要负责管理的底层公用的bean全都没有被实例化,而上层springMVC负责管理的controller全都被实例化了两次 。
于是我 使尽 各种昏招,改配置文件,怀疑配置文件没有被加载,或是spring没有启动成功,问题还是解决不了。就这样各种办法试了一个下午,最终才发现,原来是这里出了问题
他们的名字重复,导致前一个变量被后一个给覆盖了,改正,问题解决。
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值