DepartmentController中的问题

DepartmentController中的问题

问题1:定义的是DepartmentService接口,接口如何调用实例化类的方法?

问题2:为什么不是定义DepartmentService的实例化类呢?

public class DepartmentController {
   @Autowired
   private DepartmentService departmentService;
   // /department/list.do     department_list.jsp
   public void list(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
       List<Department> list= departmentService.getAll();
       request.setAttribute("LIST",list);
       request.getRequestDispatcher("../department_list.jsp").forward(request,response);
   }

正在回答

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

1回答

同学你好。下面来一条条解答你的疑惑:

1、我们使用@Autowired实际注入的是实现类,Service标签注册的也是实现类。所以虽然用DepartmentService声明,也可以使用DepartmentServiceImpl的方法。

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

2、如果只是单纯数据注入,声明为实现类也是可以接收注入对象的。但在开发中往往会对实现类增强,如事务、日志等,这些是通过AOP动态代理实现的。springAOP使用动态代理,对实现类对象做增强得到的增强类与实现类是兄弟关系,所以不能用实现类接收增强类对象,只能用接口接收。


如果解答了同学的疑问,望采纳~

祝学习愉快~


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

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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