为什么controller层里用的是UserService这个接口而不是实现类呢

为什么controller层里用的是UserService这个接口而不是实现类呢

正在回答

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

2回答

同学你好,这里将其更改为UserServiceImpl也是可以的,但不建议这样写哟,因为无法体现接口的好处。

1、简单、规范性:假设一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些业务,而且也将命名规范限制住了。

2、接口的维护、拓展性:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类。可是在不久将来,你突然发现这个类满足不了你了,然后你又要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦。

所以建议同学可以在开始编写项目时就按照这个规范来,养成好的编码习惯。

祝:学习愉快~

好帮手慕小脸 2020-12-08 16:30:20

同学你好,controller表面注入的是接口,实际注入的是实现类对象。

@Autowired 默认按照类型进行注入,也就是接口的类型注入,例如UserService接口有实现类UserServicelmpl ,当注入UserService时,即注入UserService类型UserServicelmpl实现类对象

祝学习愉快~

  • 提问者 慕用7018409 #1

    那我是不是直接注入实现类对象UserServiceImp也可以实现?

    2020-12-09 08:44:30
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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