我对使用Grails域模型/服务包含我的业务逻辑或使我的Grails控制器/服务与我的应用服务器通信并使Web层与应用程序逻辑层分离之间的区别感到困惑?
答案 0 :(得分:0)
如果您已经拥有处理域和业务规则的Web服务,则可以turn off db support。
如果您这样做,您的Grails应用程序实际上是另一项服务之上的瘦Web层。在这种情况下,如果您要强制执行业务规则, 仍然可以在服务/域层中执行此操作。但是,我不会这样做,当然也不会进行任何复杂的验证,因为该服务应该是应用程序的唯一真实来源,并且您不希望在2个应用程序中复制业务规则。
我仍然会使用控制器来处理Web请求,以及与其他服务交互的服务。我还有一些简单的域层用于通过Web层的各个部分传递数据(即服务返回贫血域对象,控制器将它们序列化到客户端但是有意义)。大部分工作都在服务层,它将序列化和反序列化与其他服务的通信。
根据您的评论,Grails是一种用于构建服务器层的优秀技术。你为什么认为不是? Grails认为自己是一个快速发展的环境;它提供了标准Web应用程序所有层所需的一切。你不会失去任何东西;恰恰相反,你获得了相当多的东西,例如与持久性,弹簧,强大的测试框架等的集成。