Spring, Struts, Hibernate, JavaServer Faces, Tapestry의 차이점은 무엇입니까?


199

나는 다음의 차이점이 무엇인지 알 수 있습니다.

  1. 스트럿
  2. 스트럿 2
  3. 동면
  4. 자바 서버 얼굴
  5. 자바 서버 페이지
  6. 태피스트리

이러한 기술 / 프레임 워크가 서로 보완 적인가? 아니면 그것들은 서로 대안입니다 (하나를 사용한 후에 다른 것을 사용할 필요가 없습니다)?

감사.

답변:


267
  1. Spring은 IoC 컨테이너 (적어도 Spring의 핵심)이며 의존성 주입을 사용하여 사물을 연결하는 데 사용됩니다. Spring은 트랜잭션 관리 및 기타 다양한 기술의 완벽한 통합과 같은 추가 서비스를 제공합니다.
  2. Struts는 액션 기반 프리젠 테이션 프레임 워크입니다 (그러나 새로운 개발에는 사용하지 마십시오).
  3. Struts 2는 위의 버전 2 (WebWork와 Struts의 병합에서 작성 됨 )의 조치 기반 프리젠 테이션 프레임 워크 입니다.
  4. 최대 절전 모드는 객체 관계 매핑 도구, 지속성 프레임 워크 입니다.
  5. JavaServer Faces는 컴포넌트 기반 프리젠 테이션 프레임 워크 입니다.
  6. JavaServer Pages는 언급 된 모든 프리젠 테이션 프레임 워크에서 사용되는 뷰 기술입니다.
  7. 태피스트리는 또 다른 구성 요소 기반 프리젠 테이션 프레임 워크 입니다.

요약하면 다음과 같습니다.

  • Struts 2, JSF, Tapestry (및 Wicket, Spring MVC, Stripes)는 프리젠 테이션 프레임 워크 입니다. 그중 하나를 사용하면 다른 것을 사용하지 않습니다.
  • 최대 절전 모드는 지속성 프레임 워크 이며 관계형 데이터베이스에서 Java 객체를 유지하는 데 사용됩니다.
  • Spring은이 모든 것을 함께 연결하고 선언적인 트랜잭션 관리를 제공하는 데 사용될 수 있습니다.

좀 더 혼란스럽게 만들고 싶지는 않지만 Java EE 6은 JSF 2.0 및 프리젠 테이션을위한 Facelets, 지속성을위한 JPA 2.0, 지속성, 의존성 주입 등 위 프레임 워크와 현대적이고 표준화되어 있으며 매우 훌륭한 프레임 워크를 제공합니다. 새로운 개발, 이것은 IMO에게 심각한 옵션이며, Java EE 6은 훌륭한 스택입니다.

또한보십시오


2
이러한 종류의 비교 상황에서 일부 사람들은 Spring이라는 단어를 사용하여 자체 MVC 프레임 워크 (Struts IMO보다 훨씬 낫습니다)를 사용한다고 지적하고 싶습니다.
MetroidFan2002

훌륭하게 설명했지만 여전히 너무 기술적입니다. 평신도 용어로 설명해 줄 것을 권합니다. 어쨌든 결국 링크가 그렇게했습니다.
멍청한 놈

대답은 실제로 훌륭한 출발점이지만 도입 된 주요 개념 (요청 기반 대 구성 요소 기반 프레임 워크, IoC 컨테이너, 프레젠테이션 대 지속성 프레임 워크 ...)을 설명함으로써 개선 될 수 있습니다. googeling,하지만 여전히 좋은 대답이며 좋은 출발점입니다! 공감.
Wouter

19

일반적으로...

최대 절전 모드는 데이터베이스 작업 처리에 사용됩니다. 풍부한 데이터베이스 유틸리티 기능이 있으므로 코드 줄이 줄어 듭니다. 특히 최대 절전 모드의 @Annotation을 읽어야합니다. ORM 프레임 워크 및 지속성 계층입니다.

Spring은 다양한 주입 기반 작업 메커니즘을 제공합니다. 현재 Spring은 잘 알려져 있습니다. Spring AOP에 대해서도 읽어야합니다. Struts와 Hibernate 사이에는 다리가 있습니다. 주로 Spring은 이런 종류의 유틸리티를 제공합니다.

Struts2는 액션 기반 프로그래밍을 제공합니다. 다양한 Struts 태그 세트가 있습니다. Struts는 액션 기반 프로그래밍을 입증하므로 뷰의 모든 관련 제어를 유지해야합니다.

또한 Tapestry는 다른 Java 프레임 워크입니다. 처리 해야하는 곳 .tml(템플릿 파일). 모든 클래스에 대해 두 개의 기본 파일을 작성해야합니다. 하나는 JAVA 클래스이고 다른 하나는 템플릿입니다. 두 이름이 동일합니다. 태피스트리는 자동으로 관련 클래스를 호출합니다.


7

여기서 개요 및 순위를 확인할 수 있습니다 . 최대 절전 모드는 ORM이므로 struts + Hiberante 또는 spring + hibernate를 사용하여 웹 앱을 빌드 할 수 있습니다. 다른 웹 프레임 워크와 많은 웹 프레임 워크가 서로의 대안입니다.


4

Spring은 IOC (Inversion of Control)를 다루는 애플리케이션 프레임 워크입니다.

Struts 2는 조치를 처리하는 웹 애플리케이션 MVC 프레임 워크입니다.

최대 절전 모드는 영구 데이터를 처리하는 ORM (Object-Relational Mapping)입니다.


3

요컨대

Struts 는 웹 사이트의 프론트 엔드 개발을위한 것입니다

최대 절전 모드 는 웹 사이트의 백엔드 개발을위한 것입니다

Spring 은 Spring MVC (Model-View-Controller)가 프론트 엔드 용인 웹 사이트의 전체 스택 개발을위한 것입니다. ORM, 데이터 액세스 / 통합을위한 JDBC (백엔드). 기타


2

최대 절전 모드에서는 SQL에서 테이블을 만드는 방법에 대해 신경 쓸 필요가 없으며 해당 데이터와 같은 연결, 준비된 명령문이 데이터베이스에 유지되는 것을 기억할 필요가 없습니다. 기본적으로 개발자의 삶을 편하게 만듭니다.


2

Spring 은2003 년 Rod Johnson이 개발 한 경량의 오픈 소스 프레임 워크입니다. Spring은 완전한 모듈 식 프레임 워크입니다. Spring 프레임 워크는 실시간 애플리케이션을 위해 모든 계층 구현에 사용되거나 특정 계층의 개발에 사용될 수 있습니다. 실시간 응용 프로그램의.

Struts 는 Java EE 웹 애플리케이션 개발을위한 오픈 소스 웹 애플리케이션 프레임 워크입니다. 개발자가 MVC (Model-View-Controller) 아키텍처를 채택하도록 장려하기 위해 Java Servlet API를 사용하고 확장합니다. 원래 Craig McClanahan이 작성했으며2000 년 5 월 Apache Foundation에 기증했습니다.

아래는 Spring과 Strut Framework의 차이점을 비교 한 차트입니다.

여기에 이미지 설명을 입력하십시오


0

태피스트리 페이지와 구성 요소는 Java 언어 기능에 쉽게 액세스 할 수 있도록 게터와 세터로 구성된 간단한 POJO (Plain Old Java Object) 입니다.


0

Spring , StrutsHibernate의 차이점 은 다음과 같습니다.

  1. Spring은 애플리케이션 프레임 워크입니다 이지만 Struts와 최대 절전 모드는 아닙니다.
  2. 스프링과 최대 절전 모드 이지만 Struts 2는 그렇지 않습니다.
  3. Spring과 Hibernate는 계층 구조를 가지고있다 있지만 Struts 2는 그렇지 않습니다.
  4. 스프링 및 최대 절전 모드는 느슨한 커플 링을 지원합니다 하지만 Struts 2는 하지 않습니다.
  5. Struts 2와 Hibernate는 태그 라이브러리를 가지고 있습니다 있지만 Spring에는 없습니다.
  6. Spring과 Hibernate는 ORM 기술과 쉽게 통합됩니다 되지만 Struts는 그렇지 않습니다.
  7. Struts 2는 클라이언트 측 기술과 쉽게 통합 되지만 Spring과 Hibernate는 없습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.