Я использую Spring для внедрения фабрики соединений JMS в мое Java-приложение. Поскольку эта фабрика требуется только в производственной среде, а не во время разработки, я поместил определение bean-компонента в отдельный XML, который я включил в свой основной applicationContext.xml. В производственных средах этот дополнительный файл содержит определение обычного компонента. В моей локальной среде разработки я бы хотел, чтобы этот бин был нулевым. Попытка просто удалить все определение bean-компонента, очевидно, вызвала ошибку, когда Spring обнаружил ссылочный идентификатор, который он не знал.
Итак, я попытался создать фабричный бин, который бы просто возвращал ноль. Если я это сделаю, Spring (2.5.x) пожалуется, что фабрика вернула значение null, хотя на основании документа API Spring интерфейса FactoryBean я ожидал, что это сработает (см. Документация Spring API ).
XML выглядит примерно так:
<bean id="jmsConnectionFactoryFactory" class="de.airlinesim.jms.NullJmsConnectionFactoryFactory" />
<bean id="jmsConnectionFactory" factory-bean="jmsConnectionFactoryFactory" factory-method="getObject"/>
Каков был бы «правильный» способ сделать это?