2
不同的依賴注入的方式有什麼不同的方式注入Grails中關係的區別:與Grails的Grails中
- ABCService abcService
高清abcService
@Autowired ABCService ABCService
不同的依賴注入的方式有什麼不同的方式注入Grails中關係的區別:與Grails的Grails中
高清abcService
@Autowired ABCService ABCService
abcService
(或其他的Spring bean這樣的名字)服務將有不同的class
,那麼你會得到ClassCastException
這裏abcService
NoSuchBeanDefinitionException
(前兩次會得到null
如果不存在的話)@Autowired
可以與def
類型也組合基本上Grails服務是標準的Spring beans,Grails只需要convention over configuration
,services
中的每個類都會創建一個名爲abcService
的bean,可以自動裝入其他bean中。所有其他工作都由Spring完成。另請參閱文檔Spring and Grails
在早期版本的Grails中,總是推薦使用'def'形式,因爲開發時重載是通過替換類加載器來實現的 - 如果您給出了顯式類型,則最終會出現「X can not當重新加載時被轉換爲X「錯誤。我相信更近期的Grails中基於代理的reloader在這方面做得比較好,但是舊的習慣很難實現(更重要的是,來自Grails 1.x日的示例代碼和文檔的大量庫仍然存在,並且越來越多由新用戶複製)。 – 2014-10-28 10:59:58
你能解釋一下什麼是「基於代理的reloader」嗎? – 2014-11-03 07:54:04
grails的最新版本使用https://github.com/spring-projects/spring-loaded,這是一個Java代理,允許它在運行時交換修改過的字節碼,而無需替換整個類加載器。 – 2014-11-03 09:49:55