我的Web应用程序使用Spring MVC + Hibernate编写。
- 我的模型是“Customer”实体POJO。
- 我有一个名为“CustomerDAO”的DAO对象,“saveCustomer(c)”方法包含与Hibernate交互的代码;
- 然后我创建了一个“CustomerService”,其中包含一个“saveCustomer(c)”方法,该方法仅将客户对象传递给DAO进行保存;
- 最后有“CustomerController”和customer.jsp,它们负责视图层,jsp的表单字段在控制器端绑定到Customer对象。控制器调用服务。
我看到很多应用程序都遵循这个(最佳)实践,但我想知道为什么需要服务层。
也许出于解耦的目的很有用:我可以向控制器展示通用的门面,并注入HibernateDAO、GaeDAO、MyDAO等到服务中....但我也可以不使用服务,而是使用接口来实现。
我还想到:验证。我将在服务中进行我的客户验证,但是......在Spring控制器中进行验证更加方便。
请帮助我理解这个概念 :)