我应该将客户代码放在哪里?

时间:2018-07-20 22:33:52

标签: grails groovy

假设我有一些代码可以对另一个API进行2次rest调用。而且我需要一个服务层在同一操作中进行2个rest调用。

在Java中,我可能会做类似的事情

@Service
public class RestService{
   @Autowired
   RestClient restClient

   def shutdown(){
      if(restClient.isSystemGood()){
         restClient.shutdownSystem()
      }          
   }
}

@Repository
public class RestClient {
  boolean isSystemGood() {
    ...
  }

  void shutdownSystem() {
    ...
  }
}

我应该怎么适应做类似的事情?

  • 我应该将RestClient内部的逻辑放入域类吗?还是应该将RestService和RestClient都放入域类?域类是否必须由数据库支持?

因为我只在grails默认文件结构中看到servicedomain文件夹。

1 个答案:

答案 0 :(得分:0)

在grails-app / services目录中的

RestService(在您的简单情况下为非事务性)是逻辑的正确位置。将服务注入控制器动作中以使用它。 不建议将服务注入到域类中。它难以测试,降低了读取性能,并导致了意大利面条的设计。这就是为什么Grails现在默认情况下具有disabled the services injection in the domain

的原因