spring mvc vs seam

dar*_*pet 5 comparison spring seam

Spring mvc是一个长期存在的框架,它有很好的文档和经过验证的技术.很多网站都在使用spring.

Seam是一个基于jsf - 富面孔实现的框架.它有很多基于ajax的组件.它使用了一些像EJB,JPA这样繁重的东西.所有这些都容易出错,而且这个框架太慢了(在我的计算机上几乎不可能开发一些东西,因为它真的很慢,特别是在jboss上重新部署)但对于后台应用来说非常好.

有人有这两个框架的专业经验吗?你能推荐一个更好的吗?为什么?

问候

Art*_*ald 7

我同时使用:Spring-MVC(2.5)和Seam

由于Seam使用Java Server Faces技术(基于服务器端的技术),在幕后,它更适合中小型应用程序.(每个JSF视图树都存储在Session上 - 您可以在客户端存储,但要注意带宽问题).但它有一些优点:

通常,Web应用程序使用以下路径

view >> controller >> service >> domain
Run Code Online (Sandbox Code Playgroud)

有了Seam,你可以得到

view >> service >> domain
Run Code Online (Sandbox Code Playgroud)

甚至(通过使用Seam Framework提供的中介模式)

No controller, No service

view >> domain 
Run Code Online (Sandbox Code Playgroud)

除此之外,

  • JSF 2支持JSR 303 - Bean Validation
  • 如果需要,可以使用Wicket而不是JSF
  • 会话和业务流程管理支持
  • 如果需要,可以使用Spring DI

Spring的MVC

它具有强大的Web层级基础架构

  • 处理程序映射(它选择哪个Controller应该处理请求)
  • 查看解析器(它选择哪个View应该呈现响应)
  • 它可以用于大型应用程序
  • 强大的数据绑定功能
  • Spring 3.0支持基于注释的控制器(JSR 303 - Bean验证,即将推出)

但我仍然没有使用Spring 3.0,因为

  • 通过使用(和扩展需要时)的MultiActionController,我可以得到约定优于配置没有任何XML配置文件中定义你的控制器(你只需要设置你的MultiActionController为@Component)
  • SimpleFormController提供了基于Spring 3.0注释的控制器中发现的类似行为

...

关于学习路径,我认为两者都是相似的.

  • "因为Seam使用Java Server Faces技术(基于服务器端的技术),在幕后".`你可以证明这一点吗?是Seam利用JSF并为它构建桥梁,但您可以在不触及JSF或任何JSF功能的情况下使用Seam.这完全取决于您启用的过滤器,servlet和拦截器.当然,有大量的内置组件是JSF特定的,但安全性,弹簧,REST等也是如此. (2认同)