您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么要使用服务层?

为什么要使用服务层?

让服务层成为DAO的包装是一种常见的反模式。在你提供的示例中,它肯定不是很有用。使用服务层意味着你将获得以下好处:

你需要在控制器中最好完成的Web类型活动和与Web不相关的常规业务逻辑之间做出明确区分。你可以与控制器逻辑分开测试与服务相关的业务逻辑。

你可以指定事务行为,因此,如果你有多个数据访问对象的调用,则可以指定它们在同一事务中发生。在你的示例中,有一个对dao的初始调用,然后是一个循环,该循环可能包含更多的dao调用。将这些调用保留在一个事务中意味着数据库的工作量减少了(它不必为对Dao的每次调用都创建一个新的事务),但是更重要的是,这意味着检索到的数据将更加一致。

你可以嵌套服务,以便如果一个服务具有不同的事务行为(需要自己的事务),则可以强制执行。

你可以使用postCommit拦截器执行通知之类的操作,例如发送电子邮件,以免浪费控制器。

通常,我提供的服务包含针对单一类型用户的用例,该服务上的每种方法都是该用户将要执行的单个操作(在单个请求-响应周期中完成的工作),与你的示例不同,通常不只是在其中进行简单的数据访问对象调用

其他 2022/1/1 18:15:28 有468人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶