powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / CDI: @ManagedBean to @Named
25 сообщений из 26, страница 1 из 2
CDI: @ManagedBean to @Named
    #39776331
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется веб приложение: jdk1.8.0_171, GlassFish5, Primefaces 6.2, Spring framework 5.0.2, ManagedBeans.

Т.к. @ManagedBean - deprecated, решил перейти на CDI, заменил:
@javax.faces.bean.ManagedBean => @javax.inject.Named
@javax.faces.bean.RequestScoped => javax.enterprise.context.RequestScoped
@javax.faces.bean.ViewScoped => @org.omnifaces.cdi.ViewScoped
@javax.faces.bean.SessionScoped => @javax.enterprise.context.SessionScoped

Запускаю: все бины создаются как синглтоны при инициализации приложения, никакого управления бинами в соответствии с их областью видимости в веб-контейнере не происходит.

Что надо еще сделать?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39776622
cossack5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexus,
У вас используется Mojarra + OmniFaces ?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39776662
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cossack5publexus,
У вас используется Mojarra + OmniFaces ?

Да:

Mojarra 2.3.3.99.payara-p5
OmniFaces version 3.2
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39779258
cossack5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexus,

Попробовал у себя, вроде работает из коробки (только у меня Mojarra 2.4).
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39780024
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cossack5publexus,

Попробовал у себя, вроде работает из коробки (только у меня Mojarra 2.4).

Mojarra 2.4 не рекомендуют , payara-5.183 был на 2.4, а затем в payara-5.184 откатились обратно на 3.9. Но это не по теме.

Проект достаточно большой, поэтому не понятно, в чем загвоздка.
Но а если по теории: в glassfish CDI-контейнер WELD, насколько я понимаю, в приложении еще spring-движок. Как они интегрируются?
При указании @Component - создается spring bean, а при @Named - ?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39780219
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexusНо а если по теории: в glassfish CDI-контейнер WELD, насколько я понимаю, в приложении еще spring-движок. Как они интегрируются?
- сами по себе никак, надо делать дополнительные телодвижения, например навешивать на бины интерсепторы:
Код: java
1.
@Interceptors(SpringBeanAutowiringInterceptor.class)
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39781073
cossack5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KachalovpublexusНо а если по теории: в glassfish CDI-контейнер WELD, насколько я понимаю, в приложении еще spring-движок. Как они интегрируются?
- сами по себе никак, надо делать дополнительные телодвижения, например навешивать на бины интерсепторы:
Код: java
1.
@Interceptors(SpringBeanAutowiringInterceptor.class)


Можно складывать CDI-бины в ApplicationContext через кастомный BeanFactoryPostProcessor ( пример ).
Можно складывать спринговые бины в CDI ( пример ).
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39781119
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще вот такую тему нашел: Integrate JSF 2.2, CDI with Spring Framework . Буду пробовать.
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39781164
cossack5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexusЯ еще вот такую тему нашел: Integrate JSF 2.2, CDI with Spring Framework . Буду пробовать.
Так у вас Spring все-таки ? и JSF-аннотации работают, а CDI нет ?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39783430
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexus,

убедитесь, что у вас есть файлик beans.xml (где именно не помню, но скорее всего в META-INF, погуглите про него)
Без этого файлика контейнер бинов CDI не будет сканировать модуль на наличие бинов. Т. е. в каждом модуле, где используете CDI, должен быть beans.xml
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39784758
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cossack5publexusЯ еще вот такую тему нашел: Integrate JSF 2.2, CDI with Spring Framework . Буду пробовать.
Так у вас Spring все-таки ? и JSF-аннотации работают, а CDI нет ?

Да. JSF-аннотации (@ManagedBean) и spring (@Component, @Service, ...) работают в старой версии, разрешаются между собой через org.springframework.web.jsf.el.SpringBeanFacesELResolver.

При замене ManagedBean => @Named эти бины доступны и в spring, но создаются все как синглтоны (RequestScoped, SessionScoped при указании не работает).
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39784828
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexusЧто надо еще сделать?
Самое правильное - не городить огород из "модных" технологий. А то вот оно, поддержание старых да дырявых штанов при помощи новых, но только носков.
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39784879
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555publexusЧто надо еще сделать?
Самое правильное - не городить огород из "модных" технологий. А то вот оно, поддержание старых да дырявых штанов при помощи новых, но только носков.

нет
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39785071
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да кому нужен этот JSF.
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39785184
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexusИмеется веб приложение: jdk1.8.0_171, GlassFish5, Primefaces 6.2, Spring framework 5.0.2, ManagedBeans.

Что-то не понял. А зачем тут Spring?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39785259
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickpublexusИмеется веб приложение: jdk1.8.0_171, GlassFish5, Primefaces 6.2, Spring framework 5.0.2, ManagedBeans.

Что-то не понял. А зачем тут Spring?
Более интересный вопрос - что у него стоит в вершине стека?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39785675
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickpublexusИмеется веб приложение: jdk1.8.0_171, GlassFish5, Primefaces 6.2, Spring framework 5.0.2, ManagedBeans.

Что-то не понял. А зачем тут Spring?
А зачем вообще нужны фреймворки и библиотеки? Можно все написать самому, и не париться, в том числе и сервер приложений и самому слушать порт 80, зачем брать готовый...
В приложении Spring используется для реализации технологий, не связанных с контейнером web, в частности Spring Data JPA, Spring Aspect и т.д.



maytonGarrickпропущено...

Что-то не понял. А зачем тут Spring?
Более интересный вопрос - что у него стоит в вершине стека?
Что в данном случае подразумевается под вершиной стека? Фабрика бинов Spring работает отдельно, ManagedBeans управляются web-контейнером. В процессе работы требуется из ManagedBeans обратиться к спринг-бину и наоборот. Это осуществляется через ссылку на контекст и org.springframework.web.jsf.el.SpringBeanFacesELResolver.

Где должна быть вершина?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39785704
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто main ?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39785712
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexusА зачем вообще нужны фреймворки и библиотеки? Можно все написать самому, и не париться, в том числе и сервер приложений и самому слушать порт 80, зачем брать готовый...
В приложении Spring используется для реализации технологий, не связанных с контейнером web, в частности Spring Data JPA, Spring Aspect и т.д.

У меня такой "набор" вызывает ассоциации с Жигулями оттюненными в каком-то гараже, у которых теперь два руля и шесть педалей, причём один руль поворачивает только налево, а другой только направо. Зачем собирать такого монстра и потом плакаться что оно жутко неудобно и не совсем работает?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39785801
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexusВ приложении Spring используется для реализации технологий, не связанных с контейнером web, в частности Spring Data JPA, Spring Aspect и т.д.
Для persistence есть тот же хибер, ну и куча всего другого. Аспекты наверняка используете для задач, которые легко решаются простым наследованием. То есть весь спринг идёт лесом, вместе с его недокументированностью и замороченностью.
publexusФабрика бинов Spring работает отдельно, ManagedBeans управляются web-контейнером.
Ну и зачем два раза управлять одним и тем же? Это как раз те два руля? Типа "по пацански"?
publexusВ процессе работы требуется из ManagedBeans обратиться к спринг-бину и наоборот.
Один руль поворачивается, но обязательно должен зацепляться за второй, иначе машина не поедет...
publexusГде должна быть вершина?
С чего начался прожект? Чего в нём сначала не было, а потом появилось?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39786098
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555publexusВ приложении Spring используется для реализации технологий, не связанных с контейнером web, в частности Spring Data JPA, Spring Aspect и т.д.Для persistence есть тот же хибер, ну и куча всего другого. Аспекты наверняка используете для задач, которые легко решаются простым наследованием. То есть весь спринг идёт лесом, вместе с его недокументированностью и замороченностью.Да есть хибер, и, да, есть надстройка над хибером - Spring Data JPA которая добавляет много нового и удобного функционала, в чем проблема его использования? Понятная и ясная модель, документации и примеров, кстати, предостаточно.

alex55555publexusФабрика бинов Spring работает отдельно, ManagedBeans управляются web-контейнером.Ну и зачем два раза управлять одним и тем же? Это как раз те два руля? Типа "по пацански"?
Абсолютно не логичный пример. Это не одно и то же, это разные системы, в вашей аналогии, - это руль и газ.

alex55555publexusВ процессе работы требуется из ManagedBeans обратиться к спринг-бину и наоборот.Один руль поворачивается, но обязательно должен зацепляться за второй, иначе машина не поедет...
Определенное взаимодействие должно быть, например по аналогии с рулем и акселератором: на большой скорости для безопасности руль должен крутиться туже. А по вашей идеологии монолитности все должно быть единым целым, т.е. колеса, рулевая колонка и педаль газа должны вращаться синхронно с коленвалом, чтобы одним рычагом можно было управлять всеми системами сразу)

alex55555publexusГде должна быть вершина?С чего начался прожект? Чего в нём сначала не было, а потом появилось?
А что в автомобиле главнее: рулевое управление, трансмиссия или тормоз.


Еще раз повторюсь, что все прекрасно работает в проекте.
Просто ManagedBeans в соответствии с новой спецификацией CDI являются deprecated. И захотелось привести приложение в соответствие, но с ходу по схеме описанной выше, к сожалению, не получилось.
Поэтому хотелось бы все же послушать не критику по выбор средств, т.к. в этом сколько людей - столько и мнений, а какой-нибудь дельный совет по теме.
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39786104
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Аспекты наверняка используете для задач, которые легко решаются простым наследованием
Если вы не в курсе, то область аспектов лежит совсем в дугой плоскости нежели наследование. И их функционал используется в том числе для решения таких задач, которые нельзя решить наследованием.
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39786105
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запускаю: все бины создаются как синглтоны при инициализации приложения, никакого управления бинами в соответствии с их областью видимости в веб-контейнере не происходит.
Можешь показать кусок исходника или макет где эта проблема воспроизводится?
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39786110
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
publexusАбсолютно не логичный пример. Это не одно и то же, это разные системы, в вашей аналогии, - это руль и газ.

О том и разговор, что Spring MVC и JSF - это как раз два руля, а не руль и газ.
...
Рейтинг: 0 / 0
CDI: @ManagedBean to @Named
    #39786114
publexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickpublexusАбсолютно не логичный пример. Это не одно и то же, это разные системы, в вашей аналогии, - это руль и газ.

О том и разговор, что Spring MVC и JSF - это как раз два руля, а не руль и газ.

Я, вроде писал, что в моем проекте Spring не используется в технологиях веб, в том числе Spring MVC.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / CDI: @ManagedBean to @Named
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]