1
我目前在新的Groovy Bean Definition DSL中看到的唯一缺點是閉包中的bean必須以依賴順序聲明。例如,雖然這個工程:在Groovy Bean中定義bean定義DSL與訂單無關
beans {
repository(RepositoryImpl)
service(ServiceImpl) {
repository = repository
}
}
這是行不通的:
beans {
service(ServiceImpl) {
repository = repository
}
repository(RepositoryImpl)
}
這是因爲在封閉代碼執行它行由行。
這是我們在Spring中不習慣的東西 - XML定義被解析爲一個DOM,在Java配置中,bean定義是方法,因此聲明順序並不重要。
我做了一些努力來打破這個閉包來模仿Java配置(每個bean的閉包/方法),但我帶來的代碼非常醜陋和冗長。
是否有人有任何想法如何重構此閉包多個訂單獨立的代碼單元?
P.S.我知道這個定義風格來自Grails,所以也許Grails社區已經有了答案?
你不能做'ref(「repository」);'? – christopher
不知道我理解你的評論... – JBaruch
關於使用ref(「repository」)的評論是一個建議來完成你正在尋找的東西。像在你的例子中那樣使用ref而不是變量名與使用Spring引用的Spring ref屬性相同。試一試。 –