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

来源:7-3 查询节点和递归查找功能开发

子玥

2018-01-17

http://img.mukewang.com/szimg/5a5f67270001a65903780084.jpg

http://img.mukewang.com/szimg/5a5f67270001408905170054.jpg


写回答

3回答

airica11

2018-01-21

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

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

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

0
0

simons_fan

2018-01-18

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

1
1
慕无忌8276694
1.应该是向controller中注入借口对应的实现类吧,并不是接口。这是spring的Ioc,将创建实例的工作交给spring容器来完成。你只需要写出它的接口,spring帮你创建实现类,这样面向接口编程,耦合性更低。
2018-01-19
共1条回复

Geely

2018-01-20

你好,同学 两位同学回答的非常正确的。注入分为两种一个是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
0

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程