Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование статических методов в ManagedBean, Выбор метода связи между ManagedBean'ами 
:(
    Опции темы
vogdb
Дата 2.8.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



Пишу веб приложение на jsf2. Активно использую @ManagedBean.
Методы общего назначение вынесены в класс Util.
Допустим следующий код
Код

        ELContext context = FacesContext.getCurrentInstance().getELContext();
        ApplicationFactory appFactory = (ApplicationFactory) FactoryFinder.
                    getFactory(FactoryFinder.APPLICATION_FACTORY);
        ValueExpression binding = appFactory.getApplication().getExpressionFactory().
                createValueExpression(context, "#{" + expression + "}", expectedType);
        return binding.getValue(context);

вынесен в метод
Код

        public Object getManagedBean(String expression, Class<?> expectedType)

Обращаюсь с ним так
Код

       Util util = new Util();
       util.getManagedBean(...);

Возник следующий вопрос. Как лучше быть для скорости работы приложения. В каждом бине иметь свой экземпляр класса Util и обращаться к нему через него(условно назовем способ А) или же лучше сделать метод getManagedBean статическим?(условно назовем способ B)
Код

        public static Object getManagedBeanStatic(String expression, Class<?> expectedType)

И из всех бинов напрямую обращаться
Код

Util.getManagedBeanStatic(...);


Или же еще такой вариант. Сделать класс Util ManagedBean'ом и обращаться к нему как-нибудь так(условно назовем способ C)
Код

       //Спрячем само получение бина
       Util util = Util.getInstance();
       //А дальше по накатанной
       util.getManagedBean(...);


Какой способ выбрать A,B или C?
PM MAIL   Вверх
powerOn
Дата 2.8.2010, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Метод делайте нестатическим, иначе юнит тесты, на код который использует эту утилиту, будет тяжело писать. 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
vogdb
Дата 2.8.2010, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



Было бы интересно узнать с точки зрения скорости работы приложения. Какой из методов быстрее?
PM MAIL   Вверх
ynblpb
Дата 3.8.2010, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 24.9.2007

Репутация: нет
Всего: нет



Я бы сделал его ManagedBean с видимостью application и проинжектил во все бины, вот так:

Код

     @ManagedProperty(value="#{util}")
    private Util util;

PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.