在Spring MVC Controller中使用服务和DAO
我正在构建一个Web应用程序,该应用程序主要由来自后端/数据库的数据的CRUD操作组成。在某些情况下,我必须编写业务逻辑(我相信随着我们对开发的深入研究,我们将建立更多的业务逻辑)。目前,我正在为每个UI屏幕创建一个模型类,Service类,DAO类,一个控制器(本质上是servlet)和一堆jsp页面。在大多数情况下,服务类仅从DAO调用方法以传递模型对象。本质上,我们使用模型类来映射来自UI屏幕的数据。因此,在提交表单时,控制器将填充模型对象。我已经开始使用服务类来保持Web层与DAO层之间的分离层。但是有时我觉得服务类只是添加了不必要级别的API调用,我想我可以将DAO注入Controller并更快地完成任务。我只想在要执行其他业务逻辑时才使用服务类。如果必须设计应用程序,那么使用控制器->
DAO与控制器->服务-> DAO控制流时,您考虑哪些因素?
回答:
DAO更加精细,并且处理一个特定的实体。服务提供宏级别的功能,并且最终可能会使用多个DAO。通常,服务用于定义事务边界以获取原子性。换句话说,如果最终使用多个DAO更新多个表,则在服务时定义事务边界将有助于提交或回滚对数据库所做的所有更改。
在您的设计中,由于您主要是对各种实体进行CRUD,因此服务似乎并没有增加太多价值。但是,请将基于Web的前端视为更新数据的一种方法。服务的使用将使您日后向第三方集成商等其他形式的客户端公开与Web服务相同的功能。
因此,总而言之,您的设计似乎与常规做法保持一致。如果您认为可以基于某个通用主题将多个服务组合为一个服务,从而可以减少代码开销,那么应该继续进行。归根结底,最终目标是创建可维护的代码,当有人需要时,不必害怕更改。
以上是 在Spring MVC Controller中使用服务和DAO 的全部内容, 来源链接: utcz.com/qa/411182.html