Spring,Struts,Hibernate,JavaServer Faces,Tapestry有什么区别?

我可以知道有什么区别:

  1. 弹簧
  2. 支柱
  3. Struts 2
  4. 过冬
  5. JavaServer Faces
  6. JavaServer Pages
  7. 挂毯

这些技术/框架是否相互补充? 或者他们是彼此的替代品(在我使用其中之一后,那么我不需要使用其他的)?

谢谢。

  1. Spring是一个IoC容器 (至less是Spring的核心),用于使用dependency injection来连接事物。 Spring提供额外的服务,如事务pipe理和各种其他技术的无缝集成。
  2. Struts是一个基于行为的表示框架 (但不用于新的开发)。
  3. Struts 2是一个基于动作的表示框架 ,上面的版本2(由WebWork与Struts的合并创build)。
  4. Hibernate是一个对象关系映射工具,一个持久化框架
  5. JavaServer Faces是基于组件的表示框架
  6. JavaServer Pages是所有提到的呈现框架所使用的视图技术。
  7. Tapestry是另一种基于组件的表示框架

所以,总结一下:

  • Struts 2,JSF,Tapestry(和Wicket,Spring MVC,Stripes)都是演示框架 。 如果你使用其中的一个,你就不用另一个。
  • Hibernate是一个持久化框架 ,用于在关系数据库中保存Java对象。
  • Spring可以用来将所有这些连接在一起,并提供声明式事务pipe理。

我不想让事情更混乱,但请注意,Java EE 6提供了上述框架的现代化,标准化和非常好的等价物:用于表示的JSF 2.0和Facelets,用于持久性的JPA 2.0,dependency injection等。新的发展,这是IMO的一个严肃的select,Java EE 6是一个伟大的堆栈。

也可以看看

  • 现在select一个Java Web框架?
  • Java – JDBC的替代品
  • JEE6与Spring 3堆栈
  • 在Java EE 6中制作Java Web应用程序需要学习什么?

通常…

Hibernate用于处理数据库操作。 有一组丰富的数据库实用程序function,可以减less您的代码行数。 尤其是你必须阅读@Hibernate的Annotation。 这是一个ORM框架和持久层。

Spring提供了一套丰富的基于注入的工作机制。 目前,spring是众所周知的。 你还必须阅读关于Spring AOP。 Struts和Hibernate之间有一个桥梁。 主要是Spring提供这种工具。

Struts2提供了基于动作的编程。 有一组丰富的Struts标签。 Strutscertificate了基于动作的编程,所以你必须保持你的视图的所有相关控制。

另外,Tapestry是Java的一个不同的框架。 你只需要处理.tml (模板文件)。 你必须为任何类创build两个主文件。 一个是JAVA类,另一个是它的模板。 两个名字都一样。 Tapestry自动调用相关的类。

你可以在这里看到自己的概况和排名。 Hibernate是一个ORM,所以你可以使用struts + Hiberante或spring + hibernate来构build一个web应用程序。 不同的networking框架和许多互为替代品。

Spring是一个处理IOC(控制反转)的应用程序框架。

Struts 2是一个处理动作的Web应用程序MVC框架。

Hibernate是一个处理持久数据的ORM(对象关系映射)。

在hibernate中,您不必担心如何在SQL中创build表,并且您不需要记住连接,像数据那样准备好的语句就会保存在数据库中。 所以,基本上它使开发人员的生活变得简单。

SpringStrutsHibernate的区别如下:

  1. Spring是一个应用程序框架,但Struts和hibernate不是。
  2. Spring和Hibernate是轻量级的,但Struts 2不是。
  3. Spring和Hibernate具有分层架构,但Struts 2没有。
  4. Spring和Hibernate支持松耦合,但Struts 2不支持
  5. Struts 2和Hibernate有标签库,但是Spring没有。
  6. Spring和Hibernate很容易与ORM技术集成,但Struts不能。
  7. Struts 2与客户端技术很容易整合,但Spring和Hibernate没有。

Tapestry页面和组件是简单的POJO(简单的旧Java对象),由getter和setter组成,可以方便地访问Java语言function。