spring mvc:expected at least 1 bean which qualifies as autowire candidate for this depende

今天在使用Spring mvc与Mybatis整合的项目的时候,遇到了新的坑。

我使用了JUnit,写了一个测试程序去测试从service层到dao层的一整个分支。但是JUnit一直给我报错…expected at least 1 bean which qualifies as autowire candidate for this depende…还有…Error creating bean with name…
从报错信息来看,就是service或者dao层的实现类没有注入成功,需要将注解都写清楚。但是我反反复复去查看我的代码,发现所有的注解全部都写清楚了……
然后我又想起来去查看SpringMVC配置文件中的“扫描包”的配置,发现也没有问题……

然后我开始怀疑人生了……!!!

再往后!!!!发现了新问题

在测试类上面,必须要写清楚两个注解,一个是@RunWith,一个是@ContextConfiguration

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:framework/springmvc/webApiConfig.xml", "classpath:framework/mybatis/database-config.xml"})
public class TestItem extends AbstractJUnit4SpringContextTests{
    //...
}

在我将webApiConfig这个xml配置完全之后,JUnit的报错信息改变了……提示是另一个service没有注入成功!!!
而这个项目是合作的…这个service不是我写的…巨坑!!!

在我将包含这个service的xml一起写到@ContextConfiguration的时候(即:classpath:framework/mybatis/database-config.xml)再次启动JUnit,测试通过。此时,一口老血喷出来。

这是第一次合作一个较大的项目,其中的艰辛,不想多说~~

小结:一般web项目报什么错,就是相关的内容出了问题不会错。只是报错的信息有时候太隐晦了,不是很能看懂。
像本例,既然发现自己的注解注入的具体代码没写错,就应该从相关的配置导入的层面上去寻找相关的解决办法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值