использование весны с ejb

вы использовали Spring и EJB вместе в проекте? Это хорошо или нет. А как, для чего вы использовали Spring и EJB? Благодарность


person feiroox    schedule 26.12.2009    source источник


Ответы (2)


В руководстве Spring есть подробная глава о EJB-интеграция:

[...] важно отметить, что использование Spring не мешает вам использовать EJB. На самом деле, Spring значительно упрощает доступ к EJB и реализацию EJB и функциональности внутри них. Кроме того, использование Spring для доступа к службам, предоставляемым EJB, позволяет реализовать эти службы для последующего прозрачного переключения между вариантами локального EJB, удаленного EJB или POJO (обычный старый объект Java) без необходимости изменения клиентского кода.

Ценность заключается главным образом в доступе к сеансовым компонентам без сохранения состояния, поскольку они более точно соответствуют сервис-ориентированной модели работы Spring. Вы также получаете некоторую пользу от сеансовых компонентов с отслеживанием состояния и компонентов управления данными, но только в ограниченной степени. Компоненты управления данными EJB2 настолько плохо спроектированы, что никакая полировка Spring не может скрыть мерзость, лежащую в основе.

Остается вопрос, почему вы хотите это сделать. Собственные возможности Spring, по крайней мере, соответствуют EJB. Наиболее распространенная причина их смешивания — если у вас есть существующая кодовая база, использующая EJB, и вам необходимо интегрировать с ней приложение Spring. Если нет существующего EJB, в этом нет никакого смысла, вы можете полностью придерживаться Spring.

person skaffman    schedule 26.12.2009

Просто чтобы добавить немного больше деталей о подходе — у нас будет простой Spring POJO, в который будет внедрен EJB с использованием аннотации @EJB. Этот POJO будет загружен с использованием файла контекста Spring, который будет частью развертывания сервера. Когда сервер появится, Spring автоматически вставит ресурс EJB в POJO, так как Pitchfork интегрирован в Weblogic. Чтобы протестировать этот код, после развертывания приложения у нас может быть промежуточный EJB, в который будет внедрена наша реализация BeanFactoryBean (также EJB), который будет искать POJO с помощью BeanFactory. Затем мы вызовем метод в POJO, который будет использовать внедренный EJB для вызова метода в этом EJB и возврата значения. Более подробную информацию об этом примере можно найти здесь

person user1178881    schedule 31.01.2012