У меня есть следующая ситуация. Существует POJO, который имеет автоматическую реализацию интерфейса, используя какую -то пружинную магию, как показано на показании. Однако эта зависимость не решается, если создание каналов управляется через Spring Bean. Это работает только в том случае, если Pojo Factory создает каналы. Пример Bellow. < /P>
@Controller
public class Test{
@RequestMapping(value = "/load", method = RequestMethod.GET)
public @ResponseBody String testConfiguration() {
// this is pojo and here it works, channels within have wired interface implementation
StaticFactory.getChannels(null);
// if i call same method within spring managed bean (@Service)
// then it doesnt work
System.out.println("channels created");
return "alive";
}
}
< /code>
Созданные каналы являются POJO, но они обладают реализацией интерфейса автоматической интерфейса, которая должна быть включена в следующем в конструкторе: < /p>
public DummyChannel() {
// enables dependency injection of spring managed beans into POJO
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
}
public class StaticFactory {
public static List getChannels(Map channelsDefinition) {
List dummyChannels = new ArrayList();
DummyChannel d = new DummyChannel();
System.out.println("here");
dummyChannels.add(new DummyChannel());
return dummyChannels;
}
}
< /code>
Теперь эта штука работает, если у меня есть фабрика, не управляемая не с пружиной. Независимо от того, является ли упомянутая фабрика статична или нет, когда он создает каналы, они обладают должным образом проводной реализации интерфейса.
Однако, если я копирую вставку точно одинаковый код с заводской в Spring Managed Bean, аннотированные с @service, то проводная зависимость нуждается в созданном канале. />
Редактировать решение: // < /strong> хорошо, поэтому проблема в том, что манекенчаны включают автоматическую поддержку в конструкторе, в то время как пружинные бобы еще не загружаются. Он работает, если я сделаю это в методе, который должен получить доступ к службе AutoWailired, а затем конструктор DumyChannel.
Подробнее здесь: https://stackoverflow.com/questions/286 ... ontextthis