论坛首页 Java企业应用论坛

关于spring对象使用的讨论

浏览 1721 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-15  
    我在开发过程中,出现这样一个争论:
     前提,系统分为service和dao两层,使用spring管理所有对象,dao一般是通过配置文件注入到service中,service中也可以直接从spring容器中获取任何对象。
     如果在一个servic中要实现一个复杂的业务,这个业务分为两部分操作,其中第一部分是一个整体的事务,第二部分是一个直接的对dao的调用,并且第二部分在其他service中已经实现。
     举例:有一个部门操作的service,其中一个操作为删除部门和该部门下的所有人。这个业务就分为两部分,第一部分是删除人员,该部分在一个人员管理的service中有实现接口,实现方式删除人员的同时删除人员的权限并备份人员信息;第二部分是调用dao直接删除部门。
     我们争论的焦点在于,在部门Service里删除部门的方法中第一部分是应该调用人员Service中已经实现的接口,还是应该去注入人员dao,自己实现删除人员的每一步操作。

     希望大家能积极参与讨论!!!
   发表时间:2011-04-15  
能复用的话,当然是调用Service
0 请登录后投票
   发表时间:2011-04-15  
看方法的难以程序吧,如果直接调用service的花,数据库方面的开销是否相对大一点?
事物处理的整个过程是否会出现问题?
这个是需要考虑的!
如果你这个动作是想确保事务没有问题的话,还是建议使用dao去实现!
基本没遇到过这样的问题,复用 和 事务的完整  应该考虑下。
另外 在一个事务中,提交一个事务。会不会影响当前事务的提交?
这个也是个疑问!
如果想复用,而这2个动作又没有事务要求的话。建议在col层复用!
0 请登录后投票
   发表时间:2011-04-15  
1,可以把一些公用的操作逻辑(例如你的删除部门和部门内人员)提取出来放和service同层,例如叫CommonService,在其他service中使用commonService中的同一个操作。
2,也可以把这些公用的函数写在抽象类中,你那些Service继承这个类。
0 请登录后投票
   发表时间:2011-04-15  
15210494746 写道
看方法的难以程序吧,如果直接调用service的花,数据库方面的开销是否相对大一点?
事物处理的整个过程是否会出现问题?
这个是需要考虑的!
如果你这个动作是想确保事务没有问题的话,还是建议使用dao去实现!
基本没遇到过这样的问题,复用 和 事务的完整  应该考虑下。
另外 在一个事务中,提交一个事务。会不会影响当前事务的提交?
这个也是个疑问!
如果想复用,而这2个动作又没有事务要求的话。建议在col层复用!

赞成,这肯定要根据你实际的实现上考虑能不能服复用的了,单纯的说选择哪一个好,还真不好说,当然写自己手动实现dao肯定没有问题,毕竟这dao的实现是你能控制的,人员service,人员dao...看的蛋痛..
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics