请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,我做junit单元测试的时候,装载Bean报错了

//img1.sycdn.imooc.com//szimg/5ad898d60001a7a919201051.jpg//img1.sycdn.imooc.com//szimg/5ad898ed0001323519201051.jpg//img1.sycdn.imooc.com//szimg/5ad89d3e000104d119201051.jpg

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.imooc.o2o.dao.AreaDaoTest': Unsatisfied dependency expressed through field 'areaDao'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.imooc.o2o.dao.AreaDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}


正在回答 回答被采纳积分+3

1回答

翔仔 2018-04-20 00:37:56

同学好,出现这样的问题可能的原因是

1、AreaDao的package和spring-dao.xml里面的扫描package不一致

2、BaseTest里加载的spring-dao.xml是否正确

/**
 * 
 * 配置spring和junit整合,junit启动时加载springIOC容器
 *
 */
@RunWith(SpringJUnit4ClassRunner.class)
// 告诉junit spring配置文件的位置
@ContextConfiguration({ "classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml",
		"classpath:spring/spring-redis.xml" })
public class BaseTest {

}


0 回复 有任何疑惑可以回复我~
  • 提问者 慕码人8436960 #1
    @RunWith(SpringJUnit4ClassRunner.class)
    // 告诉junit spring配置文件的位置
    @ContextConfiguration({ "classpath*:spring/spring-dao.xml", "classpath*:spring/spring-service.xml"})
    老师,我BaseTest是这样写的,如果不加*号,就会报错误: Failed to load ApplicationContext
    回复 有任何疑惑可以回复我~ 2018-04-20 10:55:09
  • 翔仔 回复 提问者 慕码人8436960 #2
    我觉得还是配置问题呀 同学的环境可能不对 可以试试把spring-*.xml配置copy一份到src/test/resources下面执行试试
    回复 有任何疑惑可以回复我~ 2018-04-20 11:28:48
  • 提问者 慕码人8436960 回复 翔仔 #3
    谢谢老师的知道,我终于验证Dao成功了,我后来在我src目录下发现有两个main,就感觉不正常,是以前创建src/main/resources/spring的时候弄错了,然后一些字母也搞错了,还好跟着错误信息发现了,然后看了下源代码里面的命名,复制到xml,调整好后就OK了,多谢老师的提醒
    回复 有任何疑惑可以回复我~ 2018-04-20 22:00:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信