Как перенести настольное приложение в веб-приложение с помощью JSF + Hibernate + Spring? - PullRequest
1 голос
/ 29 июля 2011

Я собирался перенести настольное приложение, которое делается на Java, в веб-приложение.В нем почти 15 пакетов и более 100 классов.И я планировал использовать JSF (с Primefaces) + Hibernate + Spring.У меня мало знаний о том, как интегрировать Hibernate и Spring, и я раньше не интегрировал их с JSF.У меня есть только три недели, и я могу тратить на этот проект менее пяти часов в день.

Один из моих друзей написал мне (скопировал и вставил):

"ВыЕсли вы сказали, что хотите импортировать свой старый проект (JSF и Primfaces) в Spring и Hibernate, вы видите, что есть некоторые проблемы, связанные с этим: 1- Вы все еще хотите использовать JSF в качестве пользовательского интерфейса? Или переключиться на Spring все вместе.может иметь JSF и Spring в качестве переднего и заднего конца, и вы можете иметь только Spring (насколько я знаю)

3 - Если вы переключитесь на Spring все вместе, я не думаю, что вы можете больше использовать Primefaces (просто предположение, поскольку Primefaces - это просто набор пользовательских компонентов для JSF).

4 - С другой стороны, JSF не интегрирован с Hibernate, вы не можете легко его использовать. Вы должны использовать полный контейнер Java EEи иметь полноценный проект Java EE, который является единственным способом получить Persistence и Hibernate в JSF, в противном случае вы в конечном итоге создадите свой собственный уровень управления сохранением (не то, чтобы это было интересно)чтобы включить связь между вашими сессиями JSF JPA-сессиями.И многое другое для управления транзакциями и многое другое.

5 - гораздо лучше работать со средой Spring, она уже поддерживает Hibernate."

Я думаю, что неправильно понял, как управлять сессиями в JSF и Hibernate. В этом проекте я хотел бы научиться эффективному способу совместного использования этих сред. Даже если я его нашеллегко использовать JPA для Hibernate, я сделаю это таким образом, но мне нужно выкопать и прочитать некоторые книги и завершить проект менее чем за 3 недели.

Я пришел с этими двумя решениями 1.useили JSF с Hibernate и управляйте всеми транзакциями. Или 2.Используйте JSF + Hibernate + Spring вместе ... Но мне нужно глубоко понять концепции, прежде чем интегрировать их.

Есть ли у вас что-нибудь подобноеопыт? Можете ли вы объяснить, как будет выглядеть концепция, если я выберу нет 2? ...

1 Ответ

7 голосов
/ 29 июля 2011

Итак, в основном вы говорите, что у вас есть 75 человеко-часов (две недели), чтобы преобразовать то, что звучит как довольно сложное настольное приложение, в веб-приложение на основе архитектуры, которую вы не понимаете, с использованием технологий, в которых вы не увереныхорошо работать вместе?Я собираюсь дать вам два ответа по цене одного ..

Консультации 101
Если у вас нет солидного понимания вовлеченной архитектуры,будьте очень осторожны с тем, что вы обещаете, и включите время для исследования («изящно провалиться»).Имейте в виду, что вы участвуете в гонках с двумя календарями: человеко-часами, необходимыми для завершения работы, и сроком выполнения работ (не говоря уже о множестве «мягких» дат: начало тестирования, дата «сбрасывания», дата завершения проекта), так далее.).Часто управление принимает решения такого рода («нам нужна веб-версия этого замечательного приложения / инструмента!») Без полного понимания того, что входит в преобразование системы.

Заметки вашего собеседника
Приятно слышать, что у вас есть ресурсы, к которым вы можете обратиться, когда вам понадобится помощь в принятии этих решений.Это будет ключевым моментом при попытке решить эту проблему.Что касается его предложений:

  1. Трудно сказать здесь.Многое сводится к тому, что вы знакомы.Я сам неравнодушен к Spring-фреймворкам, так как они, как правило, довольно малы и имеют большой фокус на интеграцию.
  2. Это сводится к тому, сколько уровней абстракции вы хотите иметь.
  3. Я не пробовал эту конкретную комбинацию, но быстрый поиск показал этот пример проекта
  4. Я не уверен, что понимаю, что ваш друг обсуждает здесь.Мы говорим о двух совершенно разных проблемах: постоянство и интерфейс.Вы можете разработать совершенно новый уровень сохраняемости, основанный на Hibernate, и использовать этот уровень в своем пользовательском интерфейсе, но, исходя из временных рамок, может оказаться проще разработать решение, более тесно связанное с вашим механизмом постоянства, и работать над его рефакторингом, когда выиметь возможность (или, по крайней мере, оставить очень хороших заметок для следующего / разработчика поддержки).
  5. Да, у Spring есть точки интеграции для Hibernate.Однако это не обязательно означает, что это лучше.Имейте в виду, что имеется инфраструктура пользовательского интерфейса ( Spring Web со встроенной поддержкой JSF , интеграция с различными средами персистентности и довольно солидный набор библиотеккоторые служат связующим звеном для скрепления всего этого.

Завершение работы
Возвращаясь к основному вопросу: Какую архитектуру выбрать?превратить это настольное приложение в веб-приложение за две недели? Я не хочу давать вам общий ответ консультанта, но: Это зависит . Какие технологии вам больше всего знакомы? С какими технологиями вы работаете?готовы пойти на риск (и полный стек Java EE против ORM - это важное решение)? Какова ваша цель (вы хотите узнать что-то новое или предоставить своевременную, проверенную и удовлетворительную реализацию)?Это, вероятно, не лучший ответ на вопрос, однако, определение реальных целей является одним из ключевых навыков надежного технического решения.д.Мое мнение?JFaces + Spring звучит как приличное решение.Как и некоторые переоценки ценностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...