问题排查:
1.在网上查阅相关博客,发现需要添加如下两种注释
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/applicationContext.xml")
2.添加后依然报错,检查日志,spring容器中并没有将BannerDao注入进来
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bannerServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.gxa.admin.dao.BannerDao com.gxa.admin.service.impl.BannerServiceImpl.bannerDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.gxa.admin.dao.BannerDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
3.依次排查xml文件,发现问题:测试类上导入的是applicationContext.xml,而applicationContext.xml并没有我的dao层依赖注入
<import resource="applicationContext-dao.xml"/>
<import resource="applicationContext-service.xml"/>
<import resource="applicationContext-tx.xml"/>
解决办法:
在测试类头部注解里添加xml路径
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/applicationContext.xml", "classpath:spring/applicationContext-mongdb.xml"})
结果:成功插入
Process finished with exit code 0