关于service (依赖于dao) 理解下面的内容!! 重点
Service层应该封装的是你的业务逻辑,在此类中调用DAO类的相应方法,用Spring的注入方式,将DAO类注入到你相应的Service类中,然后在你的Controller里面调用Service层的相应业务类即可,而不是在Controller中直接调用DAO的方法
关于service层和DAO层的几点疑惑
首先,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()。 以上是我的个人看法,请各位指点
问题补充: 已经看过了 就不多说了 这么来讲好了 按你所说 在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不用重启服务 开发速度很快。我做小项目就是这种模式,以后小项目的更改也会很少,所以不用搭建的过于复杂。