从另一个服务调用服务vs dao

Erl*_*lan 8 java dao business-logic-layer layer

我有用户和角色实体和服务,DAO层.我需要来自UserService的角色列表.

我应该从UserService使用哪一层?RoleService与RoleDAO的调用列表方法?哪一个是常用的,为什么?

Anu*_*ade 10

通常DAO层接近数据库,服务层封装您的业务逻辑,执行任何事务或其他事情,而不仅仅是调用DAO.

调用另一项服务的服务更常见,因为

  1. 您的RoleService可以评估一些业务代码,您可以从事务中受益或通过JMS传递消息,或者您可以在将来对服务方法有一些安全性.因此,分离问题是一种良好的做

  2. 易于模拟服务和测试(这可以说甚至可以测试DAO),但通过使用服务层接口分离业务逻辑是一种好方法.

但是如果你在服务层没有任何业务逻辑,你可以通过简单地使用DAO来避免冗余代码(但是对于未来,如果考虑服务层业务,你将有重构代码债务)