请稍等 ...
×

采纳答案成功!

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

1、在控制层中注入的是接口还是实现类 2、如果在实现类上的注解中value值不写成iUserService,写成其他的,那在控制层中怎么写呢?

正在回答

3回答

airica11 2018-01-21 09:18:19

对于问题1而言,我觉得答主可能省略了几个关键词,我补全一下:注入接口(类型)或者实现类(类型)都是可以的,按照byType 按类型自动装配时候,只要将要装配的Bean是该接口类型的实现或者实现类类型的实现或者子类实现,就能够装配进去。这一点体现了OO的继承性。

问题2,视频里用的是byType(通过类型)自动装配的,因为在spring-scan扫描Bean的时候,只有唯一IUserService类型的实现类,因此,在impl类上不管有没有在@Service("xxxx")里面加value="xxx" ,通过byType 自动装配都会根据类型来找到正确的Bean

ps:如果超过两个相同类型的IUserService类作为候选Bean,那么就必须加@Service()里面的value值了

0 回复 有任何疑惑可以回复我~
simons_fan 2018-01-18 15:20:08

1、接口    2、@Service(value="××")中的value可以不写,或者写了,但是没和controller中注入的接口名字不一致,对接口调用没影响的,你可以试下

1 回复 有任何疑惑可以回复我~
  • 1.应该是向controller中注入借口对应的实现类吧,并不是接口。这是spring的Ioc,将创建实例的工作交给spring容器来完成。你只需要写出它的接口,spring帮你创建实现类,这样面向接口编程,耦合性更低。
    回复 有任何疑惑可以回复我~ 2018-01-19 14:36:59
Geely 2018-01-20 15:59:34

你好,同学 两位同学回答的非常正确的。注入分为两种一个是bytype 一个是byname同学可以查查哟





【这个帖子好好看看哟,给同学们整理的学习课程的集锦宝典】
课程项目思维导图及线上环境、测试环境、部署linux和windows等解答
http://www.imooc.com/article/20193 

部署环境的话 ,建议看下文章最后一小段哟~首先跟着课程阿里云部署那个章节过一遍,可以先不跟着操作,做到心里有数,环境部署都做了什么。

尽快进入咱们QQ群哟~~进群方法下面思维导图那个帖子有。非常详细

课程项目思维导图及线上环境、测试环境、部署linux和windows等解答
http://www.imooc.com/article/20193 

【重点】问答区常见问题整理
http://www.imooc.com/article/18998

课程项目QQ群分享手记
http://www.imooc.com/article/19094


找工作的季节之简历及找工作的分享
http://www.imooc.com/article/19998

项目环境、vsftpd、linux、mysql等各种配置、软件下载
http://learning.happymmall.com


mybatis-plugin插件安装
http://coding.imooc.com/learn/questiondetail/36007.html

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信