2015-10-05 2 views
0

У меня есть компонент, обработанный сеансом, который вводится в одноэлементный компонент с использованием прокси.
Из одноэлементного компонента мне нужно вызвать определенный init-метод бина, обработанного сеансом, для которого нужен один элемент в качестве параметра. Кроме того, я не могу изменить источник бина, связанного с сеансом.Вызов init-метода компонента, связанного с сеансом из одноэлементного компонента

Выработать случай:
Одноэлементный боб является обслуживание и сеанс областью действия фасоли является Vaadin4Spring eventbus, для которого нужно вызвать метод eventBus.subscribe(this).

Кажется, что нет возможности проверить, если я уже подписан, и я не должен звонить подписываться дважды на определенном экземпляре eventBus.

Есть ли способ рассказать Весне, чтобы позвонить eventBus.subscribe(this), когда прокси связывается с экземпляром eventBus в первый раз?

+0

Ух! SessionBeans создаются при запросе. Синглтон инициализируется при запуске приложений. Вы не можете получить запрос до того, как приложение (и их синглтоны) будет инициализировано! –

+0

Возможно с Spring, потому что Spring добавит прокси-сервер, который направит доступ к правильному экземпляру компонента. – dunni

+0

Вы можете добавить @Lazy в Singleton! –

ответ

-1

Вы можете добавить @Lazy в Singleton. Вам не нужен прокси.

+0

Как это мне помочь, если мое обслуживание одноточечное, а eventBus - нет? – Tobson

0

Не можете ли вы просто пойти в другую сторону, ввести услугу в свой eventbus и позвонить this.subscribe(serviceBean) в аннотированном методе @PostConstruct в eventbus? Тогда он будет вызываться только один раз, когда будет создан eventbus.

+0

Это то, что я сделал бы, если бы мог управлять кодом eventbus ... но, как указано в моем вопросе, я не могу. Может быть, мне нужно подтип класса EventBus ... – Tobson

+0

Ах, извините, забыли это. – dunni

Смежные вопросы