在课堂上,我们现在正在学习如何构建 Spring 应用程序,即使没有直接涉及 Spring,我们也学习了如何为 DAO 和服务层对象创建接口。
如果我错了,请纠正我:
DAO 层非常抽象:它只包含 CRUD 操作,并进一步用于读取数据。(即:获取所有对象、获取特定对象等)
服务层:包含创建事物、删除事物的服务,这是业务逻辑应该存在的地方。
现在所有这些在服务层都有意义了;除了“更新”对象。您是否只是放置一个仅将对象保存在数据库中的“更新”函数?或者您还需要在那里定义逻辑吗?这就是我困惑的地方,我的理解是 Spring 中的对象只是 POJO 的。那么谁来验证数据呢?
假设我有一个对象“孩子”
它有:Name
, SurName
, Gender
, Photo
, Birthdate
字段。
我该如何命名这些服务?或者你会让控制器负责验证,这对我来说似乎不合适。另一方面,将每个需要调用的 setter 委托给服务层似乎也不合适。
所以基本上:帮助我定义如何通过服务层保存对象。
一般来说,Spring 服务是事务性的。事物进入特定的服务方法,因为它们应该在同一事务中组合在一起。如果你想从数据库中检索一个对象,调整它,并保存新版本,检索和保存应该在同一个服务方法中。所以你的服务方法是根据你需要应用程序为用户做什么来确定的。
我尝试限制控制器执行与验证 http 参数、决定使用什么参数调用什么服务方法、在 httpsession 或请求中放入什么、要重定向或转发到什么视图或类似的 Web 相关内容相关的工作。
就验证而言:验证控制器中的输入参数是一件好事,可以确保没有人可以用虚假输入破坏您的应用程序。控制器中的验证往往是为了确保输入在语法上正确(包括检测注入攻击),而服务级别验证则是为了确保数据库中的状态符合您的预期。
因此控制器包含网络框架基础设施代码,服务包含应用程序逻辑代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)