2013-03-15 47 views
1

使用Spring,可以定義實現MessageSourceAware的類。然後容器將自動注入MessageSource參見this documentation的尾端)。MessageSourceAware是一種特殊情況,還是我可以用類似的方式注入其他依賴項?

這是一個特例還是我可以使用這個概念來注入其他依賴?例如,我的課程可以實現以下接口:

public interface MyServiceAware { 
    void setMyService(MyService service); 
} 

然後用某種合適的bean自動連線?

注意:我現在正在使用XML配置,我不願移動到基於Java的註釋。

回答

2

*Aware接口由在應用程序上下文(org.springframework.context.support.ApplicationContextAwareProcessor)中自動註冊的BeanPostProcessor處理。

您可以創建並註冊您自己的後處理器來處理MyServiceAware豆。

還請記住XML配置確實支持autowiring以適當配置的bean。

+0

感謝您的回答。對於有興趣實現'BeanPostProcessor'的讀者,請參閱'org.springframework.context.support.ApplicationContextAwareProcessor'類,它負責注入'MessageSource'。 – 2013-03-18 09:01:13

+0

事實上,我寫了一篇關於[在Spring中使用標記接口]的博客文章(http://cryptonode.org/2013/03/using-marker-interfaces-in-spring/),它解釋瞭如何做到這一點。 – 2013-03-21 07:44:30

相關問題