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

时间:2023-03-09 07:18:51
出现 org.springframework.beans.factory.BeanCreationException 异常的原因及解决方法

1 异常描述

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

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

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 后,即可解决。