dao包下的类没加注解为什么也能@Autowired注入

dao包下的类没加注解为什么也能@Autowired注入

dao包下的类没加注解为什么也能@Autowired注入  我用下一章教辅区提供的源码也能成功运行查出数据 dao层也是没有注解的   

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,1、在上一个oa项目中,配置文件同样配置了MapperScannerConfigurer,将Mapper接口生成的代理注入到Spring容器中了,所以对应的@Repository可以不写。

    2、是一个,每一个dao接口对应一个对应的xml文件。

        spring自动注入的却是接口的实现类 

http://img1.sycdn.imooc.com//climg/5ebb9cd209d24c0402980335.jpg

    这是因为在resource中,如果使dao接口与xml使其包名一致,类名一致,myabtis会自动将接口和mapper文件对应,生成一个对应dao的实现类。这就是dao层的一个一一对应的过程。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

提问者 C_LANNAD 2020-05-13 14:23:01

上个办公系统的项目中持久层注解是加在接口上的http://img1.sycdn.imooc.com//climg/5ebb8f7d091472ee13830765.jpgspring自动注入的却是接口的实现类 是因为实现类只有一个吗还是什么原理 service层注解是加在实现类上的有多个实现类可以通过名称注入 这Dao层注解加在接口头上spring注入时候会主动去找实现接口的类 因为只有一个实现类所以可以成功注入 这样理解对吗

  • 提问者 C_LANNAD #1
    上个项目也配置的了MapperScannerConfigurer 接口上的注解也是可以省略的吗
    2020-05-13 14:25:57
好帮手慕小班 2020-05-13 10:36:02

同学你好,这是因为在spring-dao.xml中,使用了MapperScannerConfigurer,比如:

http://img1.sycdn.imooc.com//climg/5ebb5c8f0960788407930202.jpg

如上所示,这段代码的作用就是自动扫描对应包下的接口,并将Mapper接口生成的代理注入到Spring容器中了。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师