2011-05-28 56 views
1

考慮了一下Groovy代碼,如:Groovy是否尊重@PostConstruct?

def trainingCorpus = new CorpusNexmlReader(ignoreMissingTags: true, 
              model: model, source: corpus, 
           abideByUse: true, useListSource: true, 
           listSourceDir: corpus + "/all/", 
           listSource: corpus + "/all/split_all.txt", 
           tagMap: tagMap 
           ) 

這有益使用無參數的構造函數,使對象,然後進行調用 對應於指定參數的所有制定者。現在,如果我添加@PostConstruct,Groovy會在所有這些設置器之後調用它嗎?

回答

4

不,它不會。該@PostConstruct僅用於春豆(由Spring上下文實例,而不是由你)

+0

我必須錯過一些東西(坦率地說,我對Groovy知之甚少) - Spring在哪裏進入這個領域? – McDowell 2011-05-28 22:34:26

+0

@McDowell他沒有明確提到它,所以我可能會假設錯誤的情況,但groovy通常與grails一致。 Grails基於春天。 – Bozho 2011-05-28 22:36:12

+0

啊! - 這更有意義。 – McDowell 2011-05-28 22:41:47

2

從上@PostConstruct註釋的javadoc:

「PostConstruct註釋上需要的方法使用要執行後依賴注入做是爲了執行任何初始化。這個方法必須被調用前級投入使用。此註釋必須在支持依賴注入」的所有類的支持

Groovy不是依賴注射框架。它不會執行任何針對DI框架的註釋處理。如果您使用Groovy的spring builder將您的bean構建爲Spring bean,那麼它應該尊重該註解。

或者,您可以自己閱讀並處理該註釋。