web-dev-qa-db-fra.com

Spring MVC vs JSF

J'ai utilisé le cadre Struts dans toutes mes applications antérieures et pour la nouvelle application, mon client a demandé à utiliser Spring MVC ou JSF? Je ne connais pas ces deux cadres, mais notre calendrier est strict. Donc, je ne sais pas quel framework je choisirai pour construire l’application.

Quelqu'un peut-il me suggérer quel cadre sera facile à apprendre rapidement?

Merci

69
Yatish

Bien sûr, cela sera différent pour tout le monde, mais je suggérerais Spring MVC, car il s’agit d’un cadre basé sur des requêtes tel que Struts. Bien sûr, vous voudrez en savoir plus sur les choses essentielles de Spring telles que Inversion of Control/Dependency Injection (mais je considère cela comme un plus ...) et sur tout ce que vous allez utiliser pour accéder à une base de données (juste JDBC? Hibernate?) iBatis? etc.).

JSF est basé sur des composants, ce qui est un paradigme légèrement différent des frameworks basés sur des requêtes. Si vous envisagez d’emprunter la voie JSF, je vous conseillerais de regarder Seam de JBoss. Il s’agit plus d’une infrastructure front-à-dos qui utilise JSF comme extrémité Web/présentation et EJB comme base. Et à peu près toutes les personnes qui l'utilisent affirment que cela rend JSF et EJB plus utilisables qu'ils ne le sont d'eux-mêmes.

Bonne chance quelle que soit la technologie de votre choix. (On dirait que vous en aurez besoin - des délais stricts et un client qui prescrit les frameworks Web?)

50
Nate

Je suggérerais SpringMVC, à cause du calendrier:

  • vous avez besoin de quelque chose avec une courbe d'apprentissage moins raide. SpringMVC ressemble plus à Struts qu'à JSF
  • pour utiliser la puissance de JSF, vous devez vous familiariser avec de nombreux "trucs", tandis que SpringMVC est plus ou moins simple.
25
Bozho

Je suggérerais la bibliothèque de composants JSF + Primefaces. J'utilise cette combinaison pour construire la plupart de nos projets. Si je me souviens bien, j'ai passé une semaine à apprendre la technologie et j'ai terminé mon premier projet en un mois. Le temps de développement est au moins 30% plus rapide que Struts.

SpringMVC n'est pas une mauvaise technologie et est très populaire.

Cela dépend vraiment de celui qui vous plaît le plus.

12
Ted

JSF n'est que la couche de vision du MVC et doit être utilisé avec d'autres technologies telles que Spring/Hibernate ou EJB pour un MVC complet.

J'utilise Spring MVC depuis environ 1 mois maintenant, alors que ce n'est probablement pas la version la plus récente de SpringMVC, je trouve un peu agaçant que nous ayons tant de fichiers XML à gérer. Tous les beans gérés et DAO ont une configuration XML. De plus, tout semble devoir suivre une méthode appelée onSubmit ().

JSF avec quelque chose comme EJB est beaucoup plus simple à mon avis ... Tout peut être fait en utilisant Annotations, utilisez donc simplement @ ManagedBean = theBean dans votre bean de support et dans votre JSF {thebean.param} et vous aurez accès aux données du bean de support. . Vous pouvez également utiliser les beans session de votre EJB comme bean de sauvegarde pour JSF, puis accéder directement au bean d'entité DAO (Model layer). Encore une fois simplement en utilisant l'annotation @Entity et la classe EntityManager

Spring MVC est un framework Web intégré au framework Spring. Il fournit des fonctionnalités telles que celles de JSF 2.0: injection de dépendance ajax-support validation etc. Vous pouvez néanmoins utiliser Spring (pas Spring MVC) avec JSF 2.0, avec spring fournissant l'injection de dépendance, aop, les mécanismes de gestion des transactions et JSF. fournir la couche Web.

5
Dhrumil Shah

Bien sûr, vous voudrez en savoir plus sur les choses de base de Spring, comme Inversion of Control/Dependency Injection (mais je considérerais cela comme un plus ...)

JSF est en effet basé sur IoC, et beaucoup plus simple que la courbe d’apprentissage Spring.

5
J Slick