Переход с Glassfish с EJB на Google App Engine с помощью Spring - PullRequest
2 голосов
/ 12 января 2012

У меня довольно большой проект, написанный на Java с использованием EJB 3 + Hibernate, и он размещен на сервере Glassfish.Теперь хочу все переписать и переместить в Google App Engine.Что было бы самым простым способом сделать это.Должны ли мы начать использовать Spring для создания сущностей для управления данными?Причиной того, что мы хотим отойти от EJB + Hibernate, являются накладные расходы процессора и разработка.Иногда перезапуск сервера для проверки изменений занимает до 10 минут.Мы используем GWT для внешнего интерфейса.

Ответы [ 3 ]

5 голосов
/ 12 января 2012

Прежде чем приступить к такой масштабной миграции, имейте в виду, что вы могли бы улучшить производительность при запуске, не используя аннотации и перечисляя ваши сущности и компоненты ejb в XML. Обязательно выключите сканирование аннотаций. Лично я предпочел бы поменять скорость запуска на удобство разработки, поскольку нет необходимости поддерживать подробные XML-файлы, но, возможно, это полезно для вас.

Вы также можете начать использовать JRebel. Это значительно уменьшит количество необходимых перезапусков во время разработки (в большинстве случаев уменьшите их до нуля).

Если вы собираетесь перейти в облако, вам не нужно переписывать Spring. Существуют различные предложения, которые поддерживают EJB и обычные уши Java EE (например, OpenShift). GAE может быть круто, но трудно полностью избежать API-интерфейсов GAE. Как только вы начнете использовать их, вы будете в значительной степени привязаны к GAE.

Как личное замечание, я думаю, что переход на Spring из EJB - это задом наперед, тенденция, похоже, сильно противоположная.

3 голосов
/ 12 января 2012

Если проект станет действительно большим, Spring также запустится медленно.Чем больше у вас bean-компонентов, тем медленнее запускается процесс.

Хотя у нас есть проекты с несколькими сотнями EJB-компонентов, и время запуска в порядке (от 30 до 40 секунд).Некоторое время назад я помогал проекту Spring, который, как я догадывался, был примерно того же размера, но для начала потребовалось несколько минут.

Поэтому, прежде чем потратить 2 года на переписывание всего с использованием совершенно другой среды, я настоятельно советуюсначала вы должны сделать собственный тест.

Возможно, просто потратить немного денег на адекватное оборудование - это более экономичное решение.Быстрые твердотельные накопители, достаточно памяти и достаточно быстрый процессор делают чудеса.

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

0 голосов
/ 12 января 2012

У меня есть 2 живых проекта Spring на GAE, и я могу порекомендовать его.

Это гибко и достаточно быстро: запуск занимает 15-20 секунд (на GAE), а обработка запроса составляет около 60-90мс (без вызовов GAE API).

Конечно, вы можете использовать сервлеты планов, но это будет слишком сложно поддерживать.

...