在我们启动一个项目的时候,有时候就会出现Spring的Bean创建错误,就是Err艺皱麾酪orcreatingbeanwithn锾攒揉敫ame这个错误,在这里,我们主要介绍由注解引起的Injectionofautowireddependenciesfailed错误,这个是因为注解没有加,或者是注解使用不当导致的报错,各位在看完这一篇经验之后就会很快的解决这个报错问题,也希望各位在阅读本经验之后可以学有所得。
工具/原料
Eclipse2017版本及以上
javajdk1.8及以上
我们需要启动起来的项目
方法/步骤
1、首先还是让我们咸犴孜稍先来看一下报错的详细信息,如下图:我们这里报的是:Errorcreatingbeanwithname'reposi墉掠载牿toryController':Injectionofautowireddependenciesfailed错误,autowired,我们都知道,这个是SpringMVC的一个注解,所以这个错误肯定和我们Controller之中的autowired注解相关。
2、我们苴煜塑桠来看一下我们相关的'repositoryController'之中的autowired注解有什么错误把,我们可以先把我们壁架特鸵报的错误向后看一看,它显示我们是在tnDeviceService之中报错的,当然这个每个人可能不一样,可能是controller层,也可能是service层或者是Dao层的错误。下面是我们的sevice报错以及我们的controller相关的位置:
3、我们可以明确的知道就是我们这里的autowired有些问题,我们要关注一下我们controller的注解,一定需要有@controller注解以及@autowired注解。而我们的Service层以及Dao层需要分别有@Service以及@Dao注解。下面是我们的Service层的代码图:
4、从上图,我们可以看到我们缺少了相关的service层的@service注解,那是不是我们只需要加上我们的@service就可以了呢?事实上是不能这么草草做决定的,因为Service层可能会拥有一个impl这个接口,而@service只需要在接口上加注解就行了,仅仅在service上面加@service是不够的,所以我们要检测一下我们是否有同名称的impl文件,我这里显然是有的。
5、接下来的任务就很轻松了,打开我们的impl文件,然后加上我们所需要的@service注解,就可以成功运行了,下面让我们来打开我们的impl文件,以及加上@service注解:加上注解之后,就可以启动我们的项目运行一次看看了。
6、经过这样子的修改,我们的程序终于可以成功运行起来了,我们可以看到没有了报错,世界瞬间清静了,我们的server也成功运行了起来,是不是很轻松呢?