我正在使用Spring將JMS連接工廠注入到我的Java應用程序中。由於這個工廠只在生產環境中需要,而不是在我開發的時候,所以我把bean定義放到了一個單獨的XML中,我將其包含到我的主applicationContext.xml中。在生產環境中,這個額外的文件包含常規的bean定義。在我的本地開發環境中,我希望這個bean爲null。當Spring遇到一個它不知道的引用ID時,嘗試簡單地刪除bean定義,顯然導致了一個錯誤。有意將Spring bean設置爲null
所以我試着創建一個工廠bean,它會簡單地返回null。如果我這樣做,Spring(2.5.x)會抱怨工廠返回null,儘管基於FactoryBean接口的Spring API文檔,我期望這個接口可以工作(請參閱Spring API doc)。
的XML看起來是這樣的:
<bean id="jmsConnectionFactoryFactory" class="de.airlinesim.jms.NullJmsConnectionFactoryFactory" />
<bean id="jmsConnectionFactory" factory-bean="jmsConnectionFactoryFactory" factory-method="getObject"/>
什麼是這樣做的「正確」的方式?
這是一個開放的功能請求,但一直在那裏坐2年......投票可能會有所幫助:http://jira.springframework.org/browse/SPR-5320 – skaffman
這對我而言並不適用,如果我在'@ Autowired'上下文中使用了這個bean。 –
如果我返回null,我得到BeanCreationException。由於:org.springframework.beans.factory.BeanCreationException:在類路徑資源[XXX.xml]中定義名爲'nullObject'的bean時出錯:factory-bean'NullFactoryBean'返回null – endless