Ok. Нам нужно @Autowire другой веб-сервис на лету (предпочтительно, переключая настройку JNDI на веб-сервере), и я не знаю, как это сделать. Вот так я подходил к проблемам..
Два пакета: com.mycomp.service.stub com.mycomp.service.impl
Один пакет содержит MyServiceStub.java при реализации MyService. Другой пакет содержит MyServiceImpl.java, который реализует то же самое.
Мой контроллер, для которого требуется MyService, имеет bean-компонент, определенный как таковой
@Autowire
private MyService communicator;
Мой spring-context.xml имеет следующее:
<context:component-scan base-package="com.mycomp" />
В этот момент я получаю исключение DuplicateBean во время автоматического подключения. Теперь я могу статически определить, какой bean-компонент для автоматического связывания в spring-context.xml:
<bean id="communicator" class="com.mycomp.service.impl.MyServiceImpl" />
и все работает нормально... Но тогда как «щелкнуть» переключателем и перейти на метод Stub на нашем QA-сервере? Он не имеет подключения к этой службе, поэтому нам нужно работать с включенными заглушками. Свойство JNDI было бы лучше всего для этого... но я просто не могу понять, как переключать автопроводку bean spring во время выполнения.
Любая помощь??
Привет, Крис