我发现自己在groovy编程时避免使用def关键字,因为我喜欢使用类型的明确性。我想知道使用类型与使用def来注入服务有什么关系?我猜想它对模拟注射的可测试性有潜在的影响。还要别的吗?使用类型对Grails服务有什么影响?
我看到the documentation中提到的两种方法。
现在人们认为最佳实践是什么?
我发现自己在groovy编程时避免使用def关键字,因为我喜欢使用类型的明确性。我想知道使用类型与使用def来注入服务有什么关系?我猜想它对模拟注射的可测试性有潜在的影响。还要别的吗?使用类型对Grails服务有什么影响?
我看到the documentation中提到的两种方法。
现在人们认为最佳实践是什么?
当使用显式类型声明(for 2.0以前的grails)时,曾经存在将服务重新加载到其他服务中的问题。我没有在grails jira上看到关于此的任何最新消息,所以这可能已经在更新的版本中得到修复。
def
是类型名称的替代品。在变量定义中,它用来表示你不关心类型。 Is there any difference between declaring a variable with 'def' and declaring it with a known type?
def num = 1
Integer number = 2
assert num.class == Integer
assert number.class == Integer
我更喜欢依赖注入使用def
,我认为是最常见的Grails的。
这似乎确实仍然是一个问题。我使用的是Grails 2.1,我注意到当它们从一开始就被重新定义时,它在重新加载spring注入的服务时更好。 – barrymac