关于自动注入的一些疑问

关于自动注入的一些疑问

这里流程相当于Dispatcher分发到departmentController控制器,然后控制器从departmentService层获取相关操作,然后departmentService又通过departmentDao进行持久化操作吗?

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

那在控制层自动注入的是Service的接口,为什么不写成

private DepartmentServiceImpl departmentServiceImpl;

这样的实现类呢,难道是自动注入会根据接口找具体的实现类,因为我们这边只有一个实现类所以这样写也可以吗?

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

同理在Service层也是直接注入了Dao接口


另外就是名字的意义,我知道在Controller层的这样一个命名

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

可以使得核心控制器正常工作,但是像

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

Service层的这些名字是不是随便取都不影响项目运行结果呢

正在回答 回答被采纳积分+1

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

2回答
好帮手慕柯南 2019-08-24 09:58:41

同学你好!

  1. 这样写是可以在控制层调用实现类方法的

  2. DispacherServlet是一个Servlet,负责分发请求给Controller,但是Controller并不是一个Servlet,它只是一个控制器。

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

  • 提问者 ShanaZ #1
    那在Controller中也有用到HttpServletRequest和HttpServletResponse对象,按理说用这两个对象不是应该继承HttpServlet吗,还是说Controller并没有实现Servlet的service方法,只是在DispatcherServlet通过反射调用了Controller的相关方法
    2019-08-24 10:38:10
  • 好帮手慕柯南 回复 提问者 ShanaZ #2
    同学是DispatcherServlet通过反射调用了Controller的相关方法。祝学习愉快~
    2019-08-24 13:44:39
好帮手慕柯南 2019-08-23 17:46:30

同学你好!

  1. 关于注入时使用接口的问题,不知道同学是否还记得动态代理那里的jdk代理,其实底层与动态代理有关哦,并且使用接口在进行类的增强,业务的解耦方面都有很好的效果。

  2. 名字可以随便起,只要定义与使用时统一就可以,但是通常还是使用:类名然后将首字母小写这样的名字,这样的代码可读性会更好。同学在工作中可能不瞎写哦~~代码的质量也是很重要的

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

  • 提问者 ShanaZ #1
    我还是没懂,我的意思是这里注入的是业务层的接口,没有注入业务层的实现类,而业务层的实现类是通过@Service管理,意思是这样的写法可以在控制层调用实现类的方法吗
    2019-08-23 23:49:17
  • 提问者 ShanaZ #2
    还有一个疑问就是DispacherServlet实质上是一个servlet,那分发的DepartmentController等也是一个Servlet吗?如果是的话为什么没有集成GenericServlet呢
    2019-08-24 00:02:28
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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