关于service (依赖于dao) 理解下面的内容!! 重点

本文探讨了在软件架构中Service层与DAO层的角色与职责。通过具体案例说明了为何在Controller层调用Service层而非直接调用DAO层的重要性,并解释了这种设计如何提高代码的可维护性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Service层应该封装的是你的业务逻辑,在此类中调用DAO类的相应方法,用Spring的注入方式,将DAO类注入到你相应的Service类中,然后在你的Controller里面调用Service层的相应业务类即可,而不是在Controller中直接调用DAO的方法

 

关于service层和DAO层的几点疑惑
悬赏分:50 - 解决时间:2009-10-14 17:40
首先,service层会很大,方法很多。 
第二,试想,所有DAO都有增删改查四个基本方法。假设在DAO层(如StudentDAO.java)里student.add(),student.delete().student.update(),student.query()。 
而如果应用增加了service层(如ApplictionServiceImpl.java),需要在service层中加上 
applicationService.addStudent(),deleteStudent(),updateStudent(),queryStudent()四个方法。 
这时你需要更新service层的接口类ApplicationService.Java,加上这四个方法。然后再更新service层的实现类ApplicationServiceImpl,加上这四个方法,最后你发现这四个方法每个方法里都只有一句话(以addStudent()为例) 
public int addStudent(Student student){ 
    return student.add(); 
} 
这样是不是太傻了点,还不如在action中直接调用StudentDAO中的student.add()。 
以上是我的个人看法,请各位指点 
问题补充:
lovepetrel 是从网上copy过来的http://zhidao.baidu.com/question/46421595.html 已经看过了 就不多说了   
 Proc_871113写的很详细  先谢谢你  但是我还是有点不明白  能给我个例子么 有代码的 !
提问者: apple277315540 - 队率 六级
最佳答案
这么来讲好了 按你所说 在action中直接调用StudentDAO中的student.add()。 现在有客户A 客户B 

客户A的需求是 addStudent 这个和你所说的情况一致

客户B的需求是 addStudent 前去加一个动作 将学生父母的信息也插入数据库

这时如果按照只调用DAO的方法的话,你需要从新建立一个action 
CustomerBAction 
再重新写一个DAO 因为这个DAO里要有添加父母的方法 student.addStudentAndParentInfo()。 

CustomerBAction 去调用 student.addStudentAndParentInfo()。 

这样加大了很多工作量

如果中间有service层的话 action始终用一个action
而调用的也是service接口 只要对接口注入不同的实现就可以满足 不同客户的需求了

知识要活学活用,要按照自己项目以后的发展趋势来搭设环境,别人家说什么就用什么。其实有时候javabean+jsp 也很好用啊,因为jsp不用重启服务 开发速度很快。我做小项目就是这种模式,以后小项目的更改也会很少,所以不用搭建的过于复杂。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值