Spring MVC vs JSF

Yat*_*ish 69 java jsf spring-mvc

我在过去的所有应用程序和新应用程序中都使用过Struts框架,我的客户端要求使用Spring MVC或JSF吗?我不熟悉这两个框架,但我们的时间表是严格的.所以,我不确定我将选择构建应用程序的框架.

任何人都可以建议我在快速时间内容易学习哪个框架?

谢谢

Nat*_*ate 50

当然,每个人都会有所不同,但我建议使用Spring MVC,因为它是一个基于请求的框架,如Struts.当然,你会想要了解像控制/依赖注入反转这样的核心Spring的东西(但我会考虑加分......)以及你将用于数据库访问的任何东西(只是JDBC?Hibernate? iBatis?等等.

JSF是基于组件的,这与基于请求的框架有点不同.如果你打算去JSF路线,我建议你看看JBoss的Seam.它更像是一个前端框架,它使用JSF作为Web /表示端,EJB作为后端.几乎所有使用它的人声称它使JSF和EJB比它们本身更有用.

祝你选择哪种技术好运.(听起来你需要它 - 严格的时间表和一个规定Web框架的客户端?)

  • 仅仅是一个FYI:JSF 2具有Seam提出的一些很好的功能(会话范围,CDI),并且大量使用注释而不是XML.使用它似乎比JSF 1.2和更早版本更好. (4认同)

Boz*_*zho 25

我建议SpringMVC,因为时间框架:

  • 你需要一些不那么陡峭的学习曲线.SpringMVC更像是Struts而不是JSF
  • 为了使用JSF的强大功能,你需要熟悉许多"技巧",而SpringMVC或多或少是直截了当的


小智 13

我建议使用JSF + Primefaces组件库.我正在使用这种组合来构建我们的大部分项目.我记得,我花了一个星期的时间来学习这项技术,并在一个月内完成了我的第一个项目.开发时间至少比Struts快30%.

SpringMVC并不是一项糟糕的技术,它很受欢迎.

真的取决于你最喜欢哪一个.

  • 在认识到Primefaces(和Primefaces Mobile)真正有多强大之前,我的团队在这几天做出了同样的决定.请注意,Primefaces并不完美; 我们不得不在我们的.xhtml中不时写一些Javascript和CSS黑客,以适应浏览器渲染的差异.然而,Primefaces确实保持简单和强大 - RAD是最好的. (5认同)

J S*_*ick 5

当然,你会想要了解像控制/依赖注入反转的核心Spring之类的东西(但我认为这是一个加号...)

JSF确实基于IoC,比Spring学习曲线简单得多.

  • 示例:在JSF中,在bean中使用批注注入其他bean:假设bean1是SomeBean1的实例。在另一个bean中,使用@ManagedProperty(value =“#{bean1}”)。将其放置在将接受注入的bean1的属性的声明之前:私有瞬态SomeBean1 refToBean1; 另外,也可以在faces-config中将其用于目标bean:<managed-property> <property-name> refTobean1 </ property-name> <value>#{bean1} </ value> </ managed-property>。 (2认同)

Dhr*_*hah 5

JSF只是MVC的视图层,需要与其他技术(例如Spring / Hibernate或EJB)一起使用,以实现完整的MVC。

我已经使用Spring MVC大约一个月了,虽然它可能不是最先进的SpringMVC版本,但是我发现有太多要处理的XML有点令人讨厌。所有托管bean和DAO都具有XML配置。同样,一切似乎都必须通过一种名为onSubmit()的方法进行。

在我看来,带有EJB之类的JSF十分简单...可以使用注释完成所有操作,因此只需在您的后备bean中使用@ ManagedBean = theBean,然后在您的JSF中将{thebean.param}放入其中,就可以访问该后备bean的数据。您也可以将EJB的Session bean用作JSF的支持bean,然后直接访问DAO(模型层)实体bean。同样,只需使用@Entity批注和EntityManager类

Spring MVC是Spring框架内部的Web框架。它确实提供了JSF 2.0中的功能:ajax支持验证依赖项注入等但是,您可以将Spring(不是Spring MVC)与JSF 2.0一起使用,而spring提供了依赖项注入,aop,事务管理机制和JSF。提供网络层。

  • “带有诸如EJB之类的JSF则要简单得多……”并非如此。使用SpringMVC,从2.5开始,应用程序可以选择由注释驱动,并且可以使用最少的XML配置使用注释完成所有操作。 (8认同)
  • “我已经使用Spring MVC大约1个月了”如果您刚刚开始使用Spring,您如何看待自己有足够的技巧来权衡一下JSF和Spring? (3认同)