Seam比Spring有什么优点/缺点?

时间:2009-06-06 03:13:49

标签: spring seam

Seam比Spring有什么优点/缺点?为什么我会使用Seam代替Spring?

在Seam中有什么可以在Spring中完成的吗?春天的任何东西都无法在Seam中完成?

有状态/无状态架构怎么样?我是Spring用户,所以我很自然。

5 个答案:

答案 0 :(得分:22)

为什么是春天?

  • 清洁代码
  • 简化的应用程序配置
  • 与流行的开源产品很好地集成
  • 一流的AOP支持
  • 企业级安全:Acegi
  • 高度灵活的MVC
  • 抽象数据访问(JDBC可以)
  • 没有EJB的企业Java
  • 测试很简单

为什么选择Seam?

  • 无缝合并Java EE 5标准(EJB 3.0,JPA,JSF,Annotation)
  • 有状态设计
  • 双向注入
  • 集成Ajax(ICEfaces和Ajax4JSF)
  • 业务流程集成(jBPM)
  • 业务规则集成(Drools)
  • 工作区管理
  • 提供完整的堆栈(来自JBoss& RedHat)
  • Seam Text和EL增强功能
  • 可能是标准(JSR-299:Web Beans)

From Framework Deathmatch:Spring vs Seam。托马斯Wiradikusuma(春天)。约书亚杰克逊(Seam)。 Java用户组印度尼西亚。 JaMU 07.03。 2007年3月17日电源点演示文稿here

答案 1 :(得分:5)

虽然接缝确实比春天有许多优点,但有一个神奇的词确实值得关注,这就是性能!如果你不担心性能问题,我会选择接缝。另一方面,如果您希望您的应用程序尽可能快,并且您的硬件有限,我会使用spring。我不是说你不能用接缝开发快速应用程序,但为了做到这一点,你真的需要知道你在做什么。我已经使用了它们(我不是其中任何一个的大师)而我发现的是,尽管spring需要更多努力来构建你想要的东西,但最终结果更灵活,表现更好。我不认为在一个框架中可以做到的事情在另一个框架中无法完成,并且说,请记住,我不是其中任何一个的专家。

答案 2 :(得分:3)

Seam将为组成接缝堆叠的组件之间提供漂亮,无缝的集成。只要你保持在那个堆栈内,并在接缝模型和foing事物中,所有都非常好。一旦你开始做一些与众不同的事情,这一切都开始变得不那么令人信服了。

如果不是一般化,Seam在这方面非常“微观”。这不是一件坏事,它只是一种风格。 Spring更开放,需要更多努力才能开始,但最终会更灵活,更开放。

答案 3 :(得分:2)

你可以一起使用Spring和Seam - Spring用于后端组件,Seam用于增强web层(JSF / GWT / Wicket)和其他东西。 Seam提供了很多Spring功能(即IoC容器,事务管理) - 在你的项目中你可以决定使用。 关于将Seam与Spring集成的更多细节 - "Seam in Action - free bonus chapter"

答案 4 :(得分:2)

让我们比较两者。

什么是常见的?

两者都是开源的,遵循MVC架构并且具有基于servlet的前端控制器。

Spring MVC的优点

  • Struts扩展。
  • 可以使用JSP和HTML开发视图。你也可以插入其他的PHP或者速度。
  • 预定义了大量控制器。
  • 与Spring框架一起开箱即用。

Seam的优势

  • JSF的扩展
  • 可以使用JSF组件库开发视图。有大量供应商可供选择。
  • 将JPA实体与Web图层集成
  • 基于注释的验证
  • 与EJB 3.0集成
  • 提供流程定义的jBPM支持。
  • 与Drools集成,您可以在其中定义Web图层业务规则。
  • 良好的社区支持。

<强>结论

由于Seam是基于JSF构建的,因此它有大量的UI组件库可供选择。它更好地重用了Java EE堆栈。它预先集成了许多有趣的模块。

Spring MVC建立在Struts和Spring之上,因此它将比其他更好地重用Spring框架堆栈。但是视图是使用JSP构建的,因此我们必须依靠JSP标记库供应商来构建丰富的组件。

Seam框架将是一个更好的选择,因为Spring框架无论如何都可以扩展到足以被Seam利用。