spring项目启动服务器找不到bean的解决问题

今天在配置springMVC项目框架,启动tomcat,然后我的一个对象注入失败,找不到bean,如下:

Error creating bean with name 'userController': Injection of resource dependenci.......

解决办法如下:

这种问题我遇到2次:

1、提示我搭建项目使用的是原生dao层,结果是SQL文件里面namespace的地址错误

修改地址之后就可以了。

2、这种就比较难找了,具体不说了,直接上方案:

原来是我的web.xml文件少写了这个监听器

加上去就可以了。

org.springframework.web.context.ContextLoaderListener的作用:

ContextLoaderListener这个监听器继承自ContextLoader并且实现了ServletContextListener,他的主要作用是去寻找并读取spring主配置文件ApplicationContext.xml(也就是context-param中所定义的contextConfigLocation),然后启动WebApplicationContext,也可叫做web应用上下文,并且最重要的是,它将WebApplicationContext注入到servletContext容器中(作为servletContext的一个attribute,属性),并且在WebApplicationContext中保留了一个servletContext的引用。

 

所以我们可以通过WebApplicationContext得到servletContext,也可以通过servletContext获取到WebApplicationContext。

  通过WebApplicationContext得到servletContext:

  WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();

     ServletContext servletContext = webApplicationContext.getServletContext();

  通过servletContext获取WebApplicationContext:

  ServletContext servletContext = event.getServletContext();

  ApplicationContext application = WebApplicationContextUtils .getWebApplicationContext(servletContext);

 

后记:项目配置很多坑,不小心掉进去很难找到问题。所以以后写配置一定要仔细。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值