出现 org.springframework.beans.factory.BeanCreationException 异常的原因及解决方法

1 异常描述

在从 SVN 检出项目并配置完成后,启动 Tomcat 服务器,报出如下错误:

1

2 异常原因

通过观察上图中被标记出来的异常信息,咱们可以知道

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘XXX’

此异常,为:注入 bean 失败异常。

说白了,出现这个异常,就是找不到对应的 bean 啦!能够导致 bean 注入失败的原因包括以下几种但不限于这几种:

  • 对应的 bean 没有添加注解;
  • 对应的 bean 添加注解错误,例如将 Spring 的@Service错选成 dubbo 的;
  • 选择错误的自动注入方法等。

3 解决方法

既然知道了出现此异常的原因,那我们就回过头来,去看看对应的 Bean 声明,观察后发现注入 Facade 的代码为:

@Autowired
ErrorCodeFacade errorCodeFacade;

好吧,错误也就出在了这里!一般来说,在注入 service 层和 biz 层接口的时候,可以用@Autowired,例如:

@Autowired
ErrorCodeService errorCodeService;

但是,在注入 Facade 层接口的时候,应该用RemoteServiceFactory.getService(),例如:

ErrorCodeFacade errorCodeFacade = RemoteServiceFactory.getService(ErrorCodeFacade.class);

也就是说,对于这个异常,采用上述代码声明 ErrorCodeFacade 后,即可解决。


温馨提示:导致此异常的原因有很多,以上仅列出本人遇到的问题及解决方法,希望对大家有所帮助!

已标记关键词 清除标记
## 总共有三个相关联的配置文件,其中dataSource.properties是连接数据库,database.xml是数据库配置,applicationContext.xml再来引用了它们 ![图片说明](https://img-ask.csdn.net/upload/201605/02/1462181765_118234.png) ![图片说明](https://img-ask.csdn.net/upload/201605/02/1462181774_107236.png) ![图片说明](https://img-ask.csdn.net/upload/201605/02/1462181781_854675.png) ## 报错如下: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'dataSource' defined in class path resource [database.xml]: Could not resolve placeholder 'dataSource.driverClassName' in string value "${dataSource.driverClassName}" at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:209) at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties(PropertyPlaceholderConfigurer.java:220) at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:84) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:694) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:669) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5068) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值