读书人

关于spring对象施用的讨论

发布时间: 2012-08-22 09:50:35 作者: rapoo

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

希望大家能积极参与讨论!!! 1 楼 finallygo 2011-04-15 能复用的话,当然是调用Service 2 楼 15210494746 2011-04-15 看方法的难以程序吧,如果直接调用service的花,数据库方面的开销是否相对大一点?
事物处理的整个过程是否会出现问题?
这个是需要考虑的!
如果你这个动作是想确保事务没有问题的话,还是建议使用dao去实现!
基本没遇到过这样的问题,复用 和 事务的完整 应该考虑下。
另外 在一个事务中,提交一个事务。会不会影响当前事务的提交?
这个也是个疑问!
如果想复用,而这2个动作又没有事务要求的话。建议在col层复用! 3 楼 LoriSun 2011-04-15 1,可以把一些公用的操作逻辑(例如你的删除部门和部门内人员)提取出来放和service同层,例如叫CommonService,在其他service中使用commonService中的同一个操作。
2,也可以把这些公用的函数写在抽象类中,你那些Service继承这个类。
4 楼 Rager 2011-04-15 15210494746 写道看方法的难以程序吧,如果直接调用service的花,数据库方面的开销是否相对大一点?
事物处理的整个过程是否会出现问题?
这个是需要考虑的!
如果你这个动作是想确保事务没有问题的话,还是建议使用dao去实现!
基本没遇到过这样的问题,复用 和 事务的完整 应该考虑下。
另外 在一个事务中,提交一个事务。会不会影响当前事务的提交?
这个也是个疑问!
如果想复用,而这2个动作又没有事务要求的话。建议在col层复用!
赞成,这肯定要根据你实际的实现上考虑能不能服复用的了,单纯的说选择哪一个好,还真不好说,当然写自己手动实现dao肯定没有问题,毕竟这dao的实现是你能控制的,人员service,人员dao...看的蛋痛..

读书人网 >软件架构设计

热点推荐