运行问题
为什么在老师没有+@Repostory注解的时候, 通过按类型注入,程序可以自动运行呢? 没+@Repostory这个注解, ioc就不会类进行创建实例化啊。那怎么能运行起来呢???
正在回答 回答被采纳积分+1
同学你好,
1、理解大部分是对的,但还有一处有些小问题:这里并不是虚拟实现类,这个类在底层是存在的
2、是指如下举例这样吗?
如果是,这个提示是指存在两个EmployeeDao类型的bean。这个是由于在EmployeeDao接口上添加了@Repository注解,会生成一个bean。mybatis会根据dao接口和xml文件对应再生成一个bean。所以会提示生成两个bean。
这里同学可以使用@Qualifier()注解配合@Autowired一起使用即可
3、理解是可以的,但单词书写错误:@Repository
4、@Repository的作用是用来创建一个bean,并且用来标识这个bean是一个dao层的bean
祝学习愉快~
追加:
好像明白了, 因为是按照类型匹配注入的, 虽然ioc没有创建, 但是在mybatis的mapper扫描中, 会自动会接口与xml绑定,并创建一个虚拟实现类,这个实现类是注入接口类型的,所以程序可以运行。 但是idea会提示红线,是因为没有找到userMapper名字的对象,因为注入的是虚拟产生的实现类。 对吗??
2、为什么通过@Resource注解,注入, dao层的接口不加@Repostory注解,也可以完成注入工作呢?原理是按照名字匹配, userMapper转换成类对象存在,则会自动创建注入吗? 如果不+@Repostory注解,则实现的是多例吗?
- 参与学习 人
- 提交作业 9401 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星