¿Cuál es la diferencia entre Spring, Struts, Hibernate, JavaServer Faces, Tapestry?

199

¿Puedo saber cuál es la diferencia entre: -

  1. Primavera
  2. Puntales
  3. Struts 2
  4. Hibernar
  5. Caras JavaServer
  6. Páginas JavaServer
  7. Tapiz

¿Son estas tecnologías / marco complementarios entre sí? ¿O son alternativas entre sí (después de usar una de ellas, entonces no necesito usar la otra)?

Gracias.

CMW
fuente

Respuestas:

267
  1. Spring es un contenedor de IoC (al menos el núcleo de Spring) y se utiliza para conectar cosas mediante inyección de dependencia. Spring proporciona servicios adicionales como la gestión de transacciones y la integración perfecta de varias otras tecnologías.
  2. Struts es un marco de presentación basado en la acción (pero no lo use para un nuevo desarrollo).
  3. Struts 2 es un marco de presentación basado en la acción , la versión 2 de lo anterior (creado a partir de una fusión de WebWork con Struts).
  4. Hibernate es una herramienta de mapeo relacional de objetos, un marco de persistencia .
  5. JavaServer Faces es un marco de presentación basado en componentes .
  6. JavaServer Pages es una tecnología de vista utilizada por todos los marcos de presentación mencionados para la vista.
  7. Tapestry es otro marco de presentación basado en componentes .

Entonces, para resumir:

  • Struts 2, JSF, Tapestry (y Wicket, Spring MVC, Stripes) son marcos de presentación . Si usa uno de ellos, no usa otro.
  • Hibernate es un marco de persistencia y se utiliza para persistir objetos Java en una base de datos relacional.
  • Spring se puede utilizar para conectar todo esto y proporcionar una gestión de transacciones declarativa.

No quiero hacer las cosas más confusas, pero tenga en cuenta que Java EE 6 proporciona un equivalente moderno, estandarizado y muy agradable de los marcos anteriores: JSF 2.0 y Facelets para la presentación, JPA 2.0 para la persistencia, Inyección de dependencias, etc. Para un nuevo desarrollo, esta es una opción seria de IMO , Java EE 6 es una gran pila.

Ver también

Pascal Thivent
fuente
2
Me gustaría señalar que en este tipo de contexto de comparación, algunas personas también usan la palabra Spring para referirse a su propio marco MVC (que es mucho mejor que Struts IMO).
MetroidFan2002
Bien explicado, pero aún así es demasiado técnico. Te aconsejo que lo expliques en términos simples. De todos modos, los enlaces al final hicieron eso.
novato
La respuesta es un excelente punto de partida, pero podría mejorarse explicando los principales conceptos introducidos (marcos basados ​​en solicitud frente a componentes, contenedores IoC, marco de presentación vs persistencia ...) Tal como está ahora, requiere muchos más googeling, pero sigue siendo una buena respuesta, ¡y un excelente punto de partida! Voto a favor.
Wouter
19

Generalmente...

Hibernate se utiliza para manejar operaciones de bases de datos. Existe un amplio conjunto de funciones de utilidad de base de datos, que reduce su número de líneas de código. Especialmente debes leer @Annotation of hibernate. Es un marco ORM y una capa de persistencia.

Spring proporciona un amplio conjunto de mecanismos de trabajo basados ​​en inyección. Actualmente, Spring es bien conocida. También debes leer sobre Spring AOP. Hay un puente entre Struts e Hibernate. Principalmente Spring proporciona este tipo de utilidad.

Struts2 proporciona programación basada en acciones. Hay un rico conjunto de etiquetas Struts. Struts prueba la programación basada en la acción, por lo que debe mantener todo el control relevante de su vista.

Además, Tapestry es un marco diferente para Java. En el que tiene que manejar solo .tml(archivo de plantilla). Tienes que crear dos archivos principales para cualquier clase. Una es la clase JAVA y otra es su plantilla. Ambos nombres son iguales. Tapiz llama automáticamente a las clases relacionadas.

Pradip Bhatt
fuente
7

Puedes ver el resumen y la clasificación por ti mismo aquí . Hibernate es un ORM, por lo que puede usar struts + Hiberante o spring + hibernate para crear una aplicación web. Diferentes marcos web y muchos son alternativas entre sí.

Srikar Doddi
fuente
4

Spring es un marco de aplicación que se ocupa de IOC (Inversion of Control).

Struts 2 es un marco MVC de aplicación web que se ocupa de acciones.

Hibernate es un ORM (mapeo relacional de objetos) que trata con datos persistentes.

Nishat Lakhani
fuente
3

En breve,

Struts es para el desarrollo front-end del sitio web

Hibernate es para el desarrollo de back-end del sitio web

Spring es para el desarrollo completo del sitio web en el que Spring MVC (Model-View-Controller) es para Front-end. ORM, JDBC para acceso / integración de datos (backend). etc.

Tushar Jumani
fuente
2

En hibernación, no necesita preocuparse por cómo crear una tabla en SQL y no debe recordar la conexión, la declaración preparada como esa información persiste en una base de datos. Entonces, básicamente hace que la vida de un desarrollador sea fácil.

dipak
fuente
2

Spring es un marco ligero y de código abierto creado por Rod Johnson en 2003. Spring es un marco completo y modular, Spring Framework se puede usar para todas las implementaciones de capa para una aplicación en tiempo real o Spring se puede usar para el desarrollo de una capa particular de una aplicación en tiempo real.

Struts es un marco de aplicación web de código abierto para desarrollar aplicaciones web Java EE. Utiliza y amplía la API de Java Servlet para alentar a los desarrolladores a adoptar una arquitectura modelo-vista-controlador (MVC). Originalmente fue creado por Craig McClanahan y donado a la Fundación Apache en mayo de 2000.

A continuación se enumera la tabla de comparación de diferencias entre Spring y Strut Framework

ingrese la descripción de la imagen aquí

VyTcdc
fuente
0

Las páginas y los componentes de Tapestry son POJO simples (Objeto Java antiguo simple) que consta de captadores y establecedores para facilitar el acceso a las características del lenguaje Java.

Nishat Lakhani
fuente
0

Las diferencias entre Spring , Struts e Hibernate son las siguientes:

  1. Spring es un marco de aplicación, pero Struts e hibernate no lo son.
  2. Spring e Hibernate tienen un peso ligero, pero Struts 2 no.
  3. Spring and Hibernate tiene una arquitectura en capas, pero Struts 2 no.
  4. Spring e Hibernate admiten acoplamiento flojo, pero Struts 2 no.
  5. Struts 2 e Hibernate tienen una biblioteca de etiquetas, pero Spring no.
  6. Spring e Hibernate tienen una fácil integración con las tecnologías ORM, pero Struts no.
  7. Struts 2 tiene una fácil integración con tecnologías del lado del cliente, pero Spring e Hibernate no lo tienen.
Raman Gupta
fuente