Spring по сравнению с JSF 2

Я не использовал Spring, но похоже, что он довольно популярен. Я слышал, что он предоставляет альтернативные способы делать вещи, такие как возможность использования веб-сервисов RESTful. Кто-нибудь знает, предоставляет ли аналогичные функции, подобные тем, которые были введены JSF 2, или я буду сравнивать яблоки с апельсинами?

Edit:

Спасибо за информацию. Сравнение Spring MVC с JSF 2, будут ли преимущества использования Spring MVC вместо JSF 2?

Спасибо.

Ответ 1

Яблоки к апельсинам.

Spring - это инфраструктура приложения, которая интегрирует инъекцию зависимостей, аспектно-ориентированное программирование и несколько других вещей в одном стеке. Сравнение грубого яблок с яблоками будет J2EE.

JSF - это технология уровня представления, построенная на парадигме Model View Controller. Его приблизительное сравнение апельсинов с апельсинами было бы Spring MVC. Оба могут использовать разные технологии просмотра (т.е. Facelets, JSP, Velocity и т.д.) И оба очень хорошо интегрируются в соответствующие стеки.

- В ответ на новый вопрос -

Я использовал JSF2 в достаточной сумме (сколько угодно может дать свой молодой возраст), и я считаю, что это очень хорошая структура. Он фиксирует много недостатков JSF 1.2, и я чувствовал, что JSF 1.2 тоже подходит для меня.

Я не использовал Spring MVC, но я просмотрел код, который сделал другой разработчик.

Мой (очень) ограниченный опыт заключается в том, что Spring MVC чувствует себя немного больше как "действие", в то время как JSF больше похожа на "компонентную" структуру. Я, персонали, считаю, что компоненты-esque framework являются более естественным расширением OOD, которое обращается ко мне и к тому, как я пишу программное обеспечение.

Ответ 2

Spring MVC - это веб-среда внутри рамки Spring. Он предоставляет функции, как в JSF 2.0:

  • Ajax-поддержка
  • проверка
  • Зависимость инъекции
  • и др.

Тем не менее, вы можете использовать Spring (not Spring MVC) вместе с JSF 2.0 с Spring, предоставляющим механизмы управления зависимостями, aop, транзакциями и JSF, обеспечивающие веб-уровень.

Ответ 3

JSF - это только уровень представления MVC и должен использоваться с другими технологиями, такими как Spring/Hibernate или EJB для полного MVC.

Spring (а не Spring MVC) - это уровень контроллера MVC, и, как я уже сказал, можно использовать что-то вроде JSF (Struts, JSP/Servlets и т.д.) и что-то вроде Hibernate.

Я использую Spring MVC в течение примерно 6 месяцев, хотя он, вероятно, не самая латентная версия SpringMVC, мне было немного досадно, что у нас так много XML. Все управляемые beans и DAO имеют XML-конфигурацию. Кроме того, все, похоже, должно пройти метод, называемыйSubmit().

JSF с чем-то вроде EJB намного проще, на мой взгляд... Все можно сделать с помощью аннотаций, поэтому просто используйте @ManagedBean = theBean в своей поддержке bean и в вашем JSF put {thebean.param}, и у вас есть доступ к данным bean. Также вы можете использовать сеанс beans вашего EJB в качестве поддержки beans для JSF, а затем иметь прямой доступ к объекту DAO (Model layer) Entity bean. Снова просто с помощью аннотации @Entity и класса EntityManager

Также мне нравится, как вы можете устанавливать свои собственные методы действий, чтобы вы могли иметь метод в своем bean, называемом TheBean.addDetails(), и вызывать его в JSF с помощьюBean.addDetails(), а не все, что происходит с помощью одного метода, как с Spring MVC.

JSF, как я уже сказал, является только уровнем представления MVC, лично мне нравится использовать его с EJB, так как это дает вам полный MVC все из Suns J2EE.jar, поэтому нет проблем с тем, чтобы убедиться, что у вас есть правильные версии и не требуется настройка.

JSF 2.0 намного превосходит JSF1.2, который всегда ощущался наполовину как EJB3.1, что ничем не отличается от EJB2.x и намного лучше, чем EJB3.0. Для меня JSF2.0 с EJB3.1 настолько прост и прост в разработке, и все очень прозрачно.

Ответ 4

Я работал с управляемыми банками JSF 1.2 + JSF в течение 2 лет, и теперь я начал переходить на JSF2.0. Получив информацию о Spring и Spring MVC, я чувствую, что JSF (1.2 или 2.0) + Spring (сервис, а не MVC) + Hibernate будет очень хорошей архитектурой.

Ответ 5

Одна из худших составляющих конфигураций Spring миллиардов, даже в Spring3, у вас должны быть файлы конфигурации... Например, у вас есть веб-служба SOAP и вы хотите интегрировать Spring в качестве backend.. и вы можете найти то, что можете не вставляйте Spring beans в обычный веб-сервис.. и вы также должны изменить свои сервисы на Spring SOAP..... Spring3 использовал аннотации, но вас раздражает каждый раз, когда угадывать, какую аннотацию использовать для открытия или закрытия некоторых сервисов.... Вместо этого у вас может быть только EJB3.1, который является мощным, простым и как разработчик Java, вы можете просто наслаждаться им. Я заметил, что много поклонников Spring больше не знают EJB3, зачем им нравится Spring:)))

Ответ 6

JSF2 может использоваться как backend и как frontend, а также имеет лучшую инъекцию зависимости, навигацию и проверку, чем Spring MVC.

Spring сам по себе может использоваться в качестве каркаса предприятия вместо EJB3.1/EJB3.1 лучше /, но поскольку интерфейс JSF2 с интерфейсом не имеет альтернатив.