К EJB3 или нет? - PullRequest
       37

К EJB3 или нет?

3 голосов
/ 09 июля 2009

У меня есть сценарий архитектуры, и я хотел бы обсудить, чтобы узнать ваше мнение.

Я могу выбирать между этими двумя (это ограничение накладывается на меня)

  1. Использовать EJB3 + JPA - без пружины / гибернации
  2. POJO + JDBC - опять нет Spring / Hibernate

У меня есть серия веб-приложений (только интранет), которые необходимо интегрировать. На уровне базы данных будет от 3 до 4 баз данных Oracle (и около 40-50 таблиц на базу данных). Некоторые приложения могут взаимодействовать с несколькими базами данных по некоторым запросам. Количество одновременных пользователей будет меньше 100. Число пользователей / аудиторий на приложение будет варьироваться от 10 до 6000 (макс.).

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

Большинство сценариев использования будут основаны на CRUD (некоторые могут предложить хорошую модель предметной области для ORM, а другие нет), с некоторыми бизнес-процессами, автоматизированными заданиями и т. Д. В будущем может потребоваться интеграция с SAP для некоторых приложений. .

Как вы думаете, EJB3 в этом случае сделает приложение более масштабируемым или просто добавит сложности? Если я спроектирую с помощью POJO, буду ли я применять это, я не хочу добавлять сложность без веской причины. Я пытался лоббировать Spring и Hibernate, но безуспешно.

дайте мне знать, если вам нужно больше деталей.

РЕДАКТИРОВАТЬ: я забыл упомянуть сервер приложений. это было 7.

Ответы [ 8 ]

2 голосов
/ 09 июля 2009

EJB и JPA - это просто интерфейсы; вам все еще нужен кто-то для их реализации. Так что если Spring + Hibernate невозможен, то это означает отсутствие JPA, если вы не можете получить ОК для другого фреймворка (... эээ ... Toplink, возможно? на основе?)

Если вы застряли с POJO и JDBC, я предлагаю посмотреть на Grails . Это сделает вашу жизнь намного проще.

1 голос
/ 10 июля 2009

Хотя ваши ограничения несколько противоречивы (Hibernate - это реализация JPA в конце концов), я бы посоветовал вам принять стандартное решение. Если ваш единственный выбор - стандартный стек, такой как EJB3 / JPA, или реализация POJO / JDBC, созданная вручную, я бы сказал - EJB3.

Когда вы пойдете по пути POJO / JDBC, вы, вероятно, в конечном итоге создадите собственную Spring-подобную - но менее функциональную и менее проверенную - среду. Написание пользовательского фреймворка вряд ли когда-либо оправдано для разработчиков разработчиков.

1 голос
/ 09 июля 2009

Я не вижу, как JPA будет разрешено, но Hibernate не будет. Это не имеет большого смысла, учитывая, что Hibernate является реализацией JPA. Будет ли в порядке другая реализация JPA, например, OpenJPA?

Вы не упомянули, есть ли у вас существующий сервер или вы будете устанавливать свои приложения на еще не выбранный сервер. Это решение уже принято? Если это так, это может продиктовать ваш выбор. Полный, современный сервер JavaEE будет уже с реализациями EJB3 и JPA.

Если сервер не является сервером с поддержкой EJB3, то EJB3 гораздо менее убедителен.

Но если исключены разумные технологии, такие как Spring и Hibernate, всегда есть простые инфраструктуры, такие как iBatis, которые позволяют комбинировать POJO с JDBC.

1 голос
/ 09 июля 2009

Первый уровень обсуждения - это сравнение {POJO + JDBC, написать настойчивость вручную} с {основой для постоянства}. (Я также подозреваю, что в конечном итоге вам понадобятся интересные сервисы, так что я думаю, что EJB3 / SLSB или Spring эквивалентны, даже если вы сами свернули свое упорство).

Так что я считаю, что технологии персистентности (JPA или Hibernate) сейчас находятся на уровне, когда вам нужны веские основания , а не для их использования. JDBC - это рутинная работа, которую не нужно делать вручную.

Что касается дебатов JPA v Hibernate и Spring v EJB3, я очень сомневаюсь, кажется, что в этой области много религии.

0 голосов
/ 24 октября 2014

Ответ прост - Если jboss / glassfish, используйте EJB3 если tomcat, используйте только данные JPA, Hibernate или Spring

EJB3 против Hibernate? конечно EJB3. Вы должны знать, что EJB3 под jboss использовал hibernate, EJB3 под glassfish использовал ссылку затмения JPA.

0 голосов
/ 29 ноября 2013

EJB3 + JPA сделает вашу работу очень простой. Она очень масштабируема и очень проста в настройке и использовании друг с другом. Создание сущностей - самая сложная часть, но после этого дела идут Java (особенно, если вы используете отношения сущностей). Я использовал весенний и спящий режим в течение 4 лет, и да, они превосходны, если у вас нет сервера приложений. Но пока у вас есть WAS 7.0, тогда я рекомендую использовать EJB + JPA.

Работа с JPQL намного проще и разумнее для Java-программистов. Тем не мение; Вы не можете вызывать хранимые процедуры, если не используете JPA 2.1, который поддерживается только в WAS 8.5.

0 голосов
/ 06 мая 2013

В WAS 7 по умолчанию предусмотрена реализация OpenJPA. Весна +

0 голосов
/ 01 июля 2010

Просто иди EJB + JPA!

Полагаю, вы застряли в каком-то "корпоративном" окружении и не можете использовать фреймворки с открытым исходным кодом ... если это так, я думаю, что какая-то реализация указанных интерфейсов в IBM или Oracle доступна - используйте ее.

...