无法自动装配,未找到bean:

问题描述

新建Springboot与MyBatisplus整合项目时,entity实体放在com.example.entity下,Mapper放到com.example.dao目录中,然后新建了一个SampleTest类时,使用@Autowired标注,遇到了一个红色错误提示:【无法自动装配。找不到 ‘UserDao’ 类型的 Bean】,启动程序已经增加了扫包的注释@MapperScan(“com.example.dao”)但运行测试一直报错。

    @Autowired
    private UserDao userDao;

    @Test
    public void testUser() {
        System.out.println(("开始测试:"));
        List<User> userList = userDao.selectList(null);
        System.out.println("总记录:" + userList.size());
        userList.forEach(System.out::println);
    }

原因分析:

提示:有个帖子说要把这些实体文件放到com.example的目录下,还有一种就是更改maven代码中的Bean的自动装载设定;感觉都不是太好。


解决方案:

后来发现,扫包的时候,直接从父目录开始扫,测试程序就可以正常跑了

@MapperScan("com.example.dao, com.skguard")
@SpringBootApplication
public class MybatisPlusApplication {

    public static void main(String[] args) {

        SpringApplication.run(MybatisPlusApplication.class, args);

    }

}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐