2013-05-16 2 views
1

В моем веб-приложении у меня есть презентационный слой, состоящий из нескольких jsf-viewscoped и некоторых обработанных запросов бобов. Обычно я хочу только иметь логику представления, поэтому всякий раз, когда есть задача, выходящая за рамки логики представления, я использую другой Bean или EJB. Поэтому в некоторых виселированных бобах у меня введен EJB. Теперь мой вопрос заключается в следующем: следует ли избегать ситуаций, когда я ввел EJB непосредственно в bean-компонент, используемый для представления, создав другой (например, областью приложения) компонент, который только делегирует вызов метода в соответствующий EJB? И: Когда введенный EJB инициализирован? Если он инициализируется во время инициализации компонента, он вводится, то это означает, что для каждого посетителя моего приложения всегда есть зарезервированный EJB? Я не думаю, что это дело, но EJB используются только при вызове одного из его методов. Но как я должен должным образом отделить бизнес-и презентационные слои?Не вредно ли вводить en EJB в видоискатель?

ответ

2

Внедрение EJB в ракурс, поддерживающий вид, является обычным явлением и является наилучшей практикой.

Бэкбон, поддерживающий вид (view scoped), заботится обо всех связанных с этим проблемах, и он делегирует компоненту EJB для бизнес-логики.

Часто (но необязательно) компонент bean загружает данные из компонента EJB в свой PostConstruct, который затем удерживается во время обратной передачи. Это может быть очень эффективным для производительности и согласованности.

+0

ах ок, поэтому я думаю, что у меня там что-то не так. Можно сказать тогда, что просмотренные компоненты не относятся к уровню представления, а к слою приложения? Затем уровень представления состоял бы из страниц jsf? – nico1510

+2

Да, слой презентации состоит только из Facelets. Проверьте [Общие сведения о JSF как инфраструктуре MVC] (http://stackoverflow.com/questions/10111387/understanding-jsf-as-a-mvc-framework). С уважением, –

+0

Как насчет сериализации? Когда я вставляю EJB в просматриваемый компонент, я получаю ошибки в сериализации ... – salihcenap