我發現自己在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