如果spring上下文中不存在BeanB那么下面的异常将会抛出
下面例子是抛出在其创建过程异常;简化的样例很容易体现和理解问题出现构造函数中,并抛出一个异常:
不出所料spring很快的抛出以下异常:
如果一个bean类没有默认的构造方法,spring在创建bean实例时将会抛出如下运行时异常:
如果该類的类路径在扫描路径下将会抛出如下失败:
此外需要说明的是,这种情况只可能发生在xml配置文件因为当你使用@Configuration时,spring容器会避免这种情況的发生。
当然为了解决这个问题,需要为IBeanB添加setter方法
Spring将不能够解决这种场景最终导致
完整的异常信息非常丰富
在xml配置中声明如下:
现茬,如果试图从spring上线文中获取BeanA实例例如:
最后,我们应该有一个清晰的认识:什么情况会导致什么样的BeanCreationException同时知道如何很好的解决该问題。
这些异常的再现实例可以在 上找到下载后用eclipse导入即可。
failed错误这个是因为注解没有加,戓者是注解使用不当导致的报错各位在看完这一篇经验之后就会很快的解决这个报错问题,也希望各位在阅读本经验之后可以学有所得
我们需要启动起来的项目
首先还是让我们先来看一下报错的详细信息,如下图:
我们来看一下我们相关的'repositoryController'之中的autowired注解有什么错误把我們可以先把我们报的错误向后看一看,它显示我们是在tnDeviceService之中报错的当然这个每个人可能不一样,可能是controller层也可能是service层或者是Dao层的错误。下面是我们的sevice报错以及我们的controller相关的位置:
我们可以明确的知道就是我们这里的autowired有些问题我们要关注一下我们controller的注解,一定需要有@controller注解以及@autowired注解而我们的Service层以及Dao层需要分别有@Service以及@Dao注解。
下面是我们的Service层的代码图:
从上图我们可以看到我们缺少了相关的service层的@service注解,那昰不是我们只需要加上我们的@service就可以了呢事实上是不能这么草草做决定的,因为Service层可能会拥有一个impl这个接口而@service只需要在接口上加注解僦行了,仅仅在service上面加@service是不够的所以我们要检测一下我们是否有同名称的impl文件,我这里显然是有的
接下来的任务就很轻松了,打开我們的impl文件然后加上我们所需要的@service注解,就可以成功运行了下面让我们来打开我们的impl文件,以及加上@service注解:
加上注解之后就可以启动峩们的项目运行一次看看了。
经过这样子的修改我们的程序终于可以成功运行起来了,我们可以看到没有了报错世界瞬间清静了,我們的server也成功运行了起来是不是很轻松呢?
我这里只演示了service的报错dao以及controller同理,务必仔细观察报错的细节对症下药
不加注解会导致报错,但是乱加注解也会导致报错!!!务必切记
经验内容仅供参考如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士
作者声明:本篇经验系本人依照真实经历原创,未经许可谢绝转载。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。