在 groovy 中编程时,我发现自己避免使用 def 关键字,因为我喜欢使用类型的明确性。我想知道使用类型与使用 def 注入服务有什么含义?我想它对模拟注入的可测试性有潜在的影响。还要别的吗?
我看到文档中提到的两种方法。
人们现在认为最佳实践是什么?
当使用显式类型声明时(对于 2.0 之前的 grails),重新加载注入其他服务的服务曾经存在问题。我在 grails jira 中没有看到任何关于此的最新信息,因此这可能已在更新的版本中得到修复。
def
是类型名称的替代品。在变量定义中,它用于表示您不关心类型。用'def'声明变量和用已知类型声明它有什么区别吗?
def num = 1
Integer number = 2
assert num.class == Integer
assert number.class == Integer
我更喜欢使用def
依赖注入,我认为这是 Grails 中最常见的。