1

我对使用 Grails 域模型/服务来包含我的业务逻辑或让我的 Grails 控制器/服务与我的应用程序服务器通信并使 Web 层与应用程序逻辑层分离之间的区别有点困惑?

  1. 我什么时候选择哪个?
  2. 每种方法的优缺点是什么?
  3. 使用 Grails 域的东西专门用于可伸缩性的任何问题,什么不是?
4

1 回答 1

0

如果您已经有一个处理您的域和业务规则的 Web 服务,您可以关闭 db support

如果你这样做了,你的 grails 应用程序实际上就是另一个服务之上的一个瘦 Web 层。在这种情况下,如果您要执行业务规则,您仍然可以在服务/域层中执行此操作。但是,我不会这样做,当然也不会进行任何复杂的验证,因为服务应该是您应用程序的单一事实来源,并且您不想在 2 个应用程序中重复业务规则。

我仍然会使用控制器来处理 Web 请求,并使用服务与其他服务进行交互。我还会有一些简单的域层用于通过 web 层的各个部分传递数据(即服务返回贫血的域对象,控制器将它们序列化到客户端但是有意义)。大部分工作将在服务层中,它将序列化和反序列化与其他服务的通信。

根据您的评论,Grails 是一种用于构建服务器层的优良技术。为什么你会认为不是?Grails 自称是一个快速的开发环境。它提供了标准网络应用程序所有层所需的一切。你不会失去任何东西;恰恰相反,你获得了很多,比如与持久性、弹簧、健壮的测试框架等的集成。

于 2013-05-15T19:10:02.003 回答