Spring Autowireing с помощью ProcessInectionBasedOncurrentContext (это);JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Autowireing с помощью ProcessInectionBasedOncurrentContext (это);

Сообщение Anonymous »

У меня есть следующая ситуация. Существует 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»