修改配置文件数据、服务或控制器?

Modify profile data, service or controller?

目前正在学习SpringMVC + Hibernate。我在实现一个简单的用户帐户管理器应用程序时感到困惑。

就我而言:

  1. 应该从数据库中读取用户帐户;
  2. 密码修改前应先比对;
  3. 根据前端表单修改用户账号信息;
  4. 应将具有新信息的用户帐户保存回数据库;

我的问题是:

  1. 整个过程应该在Service中实现还是在Controller中实现?为什么?
  2. 在许多示例中,我了解到服务方法通常很小并且只包含一个 DAO 调用,这是一种好的做法吗?或者我们做对比把几个DAO调用放到一个服务方法中?

Should this whole process be implemented in the Service or in the Controller? And why?

业务逻辑在服务层(MVC 中的 M)中完成 - 请参阅下面的 link 进行解释。

In many examples I read that the service methods are usually tiny and contains only one DAO call, is this a good practice? Or we do the contrast to put several DAO calls into one service methods?

服务方法的大小适合它们执行的逻辑。如果对于特定的逻辑,您需要访问多个 DAO 或其他服务,那么您就可以这样做。如果逻辑是 10 行代码或 100 行,那么这就是方法的大小。问题是大多数示例都使用服务层(您的应用程序应该有),但因为它们只是示例,所以其中没有任何逻辑。出于这个原因,他们中的大多数人只是委托给一些 DAO,让人们对他们的目的应该是什么感到困惑。

阅读以下内容了解详情:The Purpose of a Service Layer and ASP.NET MVC 2(它适用于 .NET,但原则仍然适用)。