Qual é a diferença entre Spring, Struts, Hibernate, JavaServer Faces, Tapeçaria?

199

Posso saber qual é a diferença entre: -

  1. Primavera
  2. Struts
  3. Struts 2
  4. Hibernate
  5. JavaServer Faces
  6. Páginas JavaServer
  7. Tapeçaria

Essas tecnologias / estrutura são complementares entre si? Ou são alternativas uma para a outra (depois que eu uso um deles, não preciso usar o outro)?

Obrigado.

CMW
fonte

Respostas:

267
  1. Spring é um contêiner de IoC (pelo menos o núcleo do Spring) e é usado para conectar coisas usando injeção de dependência. O Spring fornece serviços adicionais, como gerenciamento de transações e integração perfeita de várias outras tecnologias.
  2. Struts é uma estrutura de apresentação baseada em ação (mas não a use para um novo desenvolvimento).
  3. O Struts 2 é uma estrutura de apresentação baseada em ação , a versão 2 acima (criada a partir de uma mesclagem do WebWork com Struts).
  4. O Hibernate é uma ferramenta de mapeamento objeto-relacional, uma estrutura de persistência .
  5. O JavaServer Faces é uma estrutura de apresentação baseada em componentes .
  6. O JavaServer Pages é uma tecnologia de visualização usada por toda a estrutura de apresentação mencionada para a visualização.
  7. Tapeçaria é outra estrutura de apresentação baseada em componentes .

Então, para resumir:

  • Struts 2, JSF, Tapeçaria (e Wicket, Spring MVC, Stripes) são estruturas de apresentação . Se você usa um deles, não usa outro.
  • O Hibernate é uma estrutura de persistência e é usado para persistir objetos Java em um banco de dados relacional.
  • O Spring pode ser usado para conectar tudo isso e fornecer gerenciamento de transações declarativo.

Não quero tornar as coisas mais confusas, mas observe que o Java EE 6 fornece um equivalente moderno, padronizado e muito agradável das estruturas acima: JSF 2.0 e Facelets para a apresentação, JPA 2.0 para a persistência, Injeção de Dependências etc. novo desenvolvimento, esta é uma opção séria da IMO , o Java EE 6 é uma ótima pilha.

Veja também

Pascal Thivent
fonte
2
Gostaria de salientar que, nesse tipo de contexto de comparação, algumas pessoas também usam a palavra Spring para se referir a sua própria estrutura MVC (que é muito mais agradável que o Struts IMO).
MetroidFan2002
Bem explicado, mas ainda é muito técnico. Eu aconselho você a explicar em termos leigos. De qualquer forma, os links no final fizeram isso.
Noob
A resposta é realmente um excelente ponto de partida, mas poderia ser aprimorada explicando os principais conceitos introduzidos (estruturas baseadas em solicitação e componentes, contêineres de IoC, estrutura de apresentação versus persistência ...) Como está agora, requer muito mais pesquisando, mas ainda é uma boa resposta e um ótimo ponto de partida! Voto a favor.
Wouter
19

Geralmente...

O Hibernate é usado para manipular operações de banco de dados. Há um rico conjunto de funcionalidades do utilitário de banco de dados, o que reduz o número de linhas de código. Especialmente, você deve ler @Annotation of hibernate. É uma estrutura ORM e camada de persistência.

O Spring fornece um rico conjunto de mecanismos de trabalho baseados em injeção. Atualmente, a primavera é bem conhecida. Você também deve ler sobre o Spring AOP. Há uma ponte entre o Struts e o Hibernate. Principalmente o Spring fornece esse tipo de utilidade.

Struts2 fornece programação baseada em ação. Há um rico conjunto de tags Struts. O Struts prova a programação baseada em ação, para que você tenha todo o controle relevante de sua visão.

Além disso, o Tapestry é uma estrutura diferente para Java. No qual você precisa manipular apenas .tml(arquivo de modelo). Você precisa criar dois arquivos principais para qualquer classe. Um é a classe JAVA e o outro é o modelo. Ambos os nomes são iguais. A tapeçaria chama automaticamente as classes relacionadas.

Pradip Bhatt
fonte
7

Você pode ver a visão geral e a classificação por si mesmo aqui . O Hibernate é um ORM, portanto você pode usar o struts + Hiberante ou spring + hibernate para criar um aplicativo da web. Diferentes estruturas da web e muitas são alternativas entre si.

Srikar Doddi
fonte
4

O Spring é uma estrutura de aplicativos que lida com o COI (Inversão de Controle).

O Struts 2 é uma estrutura MVC de aplicativo da web que lida com ações.

O Hibernate é um ORM (Mapeamento Relacional a Objetos) que lida com dados persistentes.

Nishat Lakhani
fonte
3

Em resumo,

Struts é para desenvolvimento front-end do site

O Hibernate destina-se ao desenvolvimento de back-end do site

Spring é para o desenvolvimento de pilha completa do site no qual Spring MVC (Model-View-Controller) é para Front-end. ORM, JDBC para acesso a dados / integração (back-end). etc

Tushar Jumani
fonte
2

No hibernate, você não precisa se preocupar em como criar tabela no SQL e não precisa se lembrar da conexão, a instrução preparada como se os dados persistissem em um banco de dados. Então, basicamente, facilita a vida de um desenvolvedor.

dipak
fonte
2

O Spring é um framework leve e de código aberto criado por Rod Johnson em 2003. O Spring é um framework completo e modular, o framework Spring pode ser usado para todas as implementações de camada para uma aplicação em tempo real ou o spring pode ser usado para o desenvolvimento de uma camada específica de um aplicativo em tempo real.

Struts é uma estrutura de aplicativos da web de código aberto para o desenvolvimento de aplicativos da web Java EE. Ele usa e estende a API do Java Servlet para incentivar os desenvolvedores a adotar uma arquitetura MVC (Model-View-Controller). Foi originalmente criado por Craig McClanahan e doado à Apache Foundation em maio de 2000.

Listado abaixo está o gráfico de comparação da diferença entre o Spring e o Strut Framework

insira a descrição da imagem aqui

VyTcdc
fonte
0

As páginas e os componentes de tapeçaria são POJO's simples (objeto antigo e simples de Java) que consistem em getters e setters para facilitar o acesso aos recursos da linguagem Java.

Nishat Lakhani
fonte
0

As diferenças entre Spring , Struts e Hibernate são as seguintes:

  1. O Spring é uma estrutura de aplicativos, mas o Struts e o hibernate não.
  2. Spring e Hibernate são leves, mas o Struts 2 não.
  3. Spring e Hibernate tem arquitetura em camadas, mas o Struts 2 não.
  4. O Spring e o Hibernate suportam acoplamentos frouxos, mas o Struts 2 não.
  5. O Struts 2 e o Hibernate têm biblioteca de tags, mas o Spring não.
  6. Spring e Hibernate têm fácil integração com as tecnologias ORM, mas o Struts não.
  7. O Struts 2 possui fácil integração com as tecnologias do lado do cliente, mas o Spring e o Hibernate não.
Raman Gupta
fonte