2010-11-25 3 views
31

저는 다른 자바 프레임 워크와 혼동합니다. 일부 Java 웹 서비스를 제공하기 위해 Java 서버 프로젝트를 만들고 싶습니다.하지만 선택할 프레임 워크를 알지 못합니다. JSF, EJB, Hibernate 및 Spring의 차이점은 무엇입니까? 제발 좀 더 이해하도록 도와주세요.EJB, 최대 절전 모드, 스프링 및 JSF의 차이점은 무엇입니까?

+5

+14 버거, 비행기 및 말의 차이점에 대해 묻는 질문이 있으십니까? –

+6

@MichaelLaffargue 먹는 곳에 따라 햄버거와 말의 차이가별로 없을 수도 있습니다. –

+2

@ JasonC 당신이 포인트를 가지고;) –

답변

49

이들은 서로 다른 계층을위한 프레임 워크이다.

  • JSF은 개찰구 또는 태피스트리처럼 (이 상태를 가지고 페이지의 모든 부분 구성 요소입니다), 그리고 스프링 MVC 같은 액션 프레임 워크와 달리이 구성 요소 지향 프레임 워크의 뷰 (웹) 계층을위한 스트럿츠 또는 줄무늬

    책 : Core JavaServer Faces (3rd Edition)
    자습서 : CoreServlets.com

  • EJB 3.x를는의 일부 컨테이너입니다스택. 의존성 삽입 및 빈 수명주기 관리와 같은 작업을 수행합니다. , ( 또한 컨테이너이지만, 봄은 어떤 자바 코드를 실행할 수있는 간단한 기본 클래스를 EJB 3 in Action

  • 봄 : JavaEE 6 Tutorial: EJB
    책 : 당신은 일반적으로 EJB3

    자습서에 대한 전체 JavaEE 어플 응용 프로그램 서버가 필요 애플릿, 웹 응용 프로그램 또는 JavaEE 엔터프라이즈 응용 프로그램). 봄 거의 EJB가 할 수있는 모든 것을하고 더 많은 작업을 수행 할 수 있습니다,하지만 난 그것을 의존성 주입 및 비 간섭 트랜잭션 관리

    Online Reference (우수)
    책에 대한 가장 유명한 말하고 싶지만 : 나는 좋은 영어를 찾을 수 없습니다 최대 절전 모드
    만들기

  • 에 몇 가지 있지만 봄 3.X에 책의 일부 첫 번째 큰 ORM (관계형 매퍼 객체) 자바 플랫폼에서, 그리고 같은 크게 고무시켰다 JPA (했다 EJB3 표준이지만 EJB 컨테이너없이 사용할 수 있음). Pro JPA 2: Mastering the Java™ Persistence API가 (최대 절전 모드 특정되지 않음), Java Persistence with Hibernate

  • (오래된 조금을 받고) : 나는, JPA에 대해 코딩 만 제공 업체로 최대 절전 모드 사용

    책은 쉽게 등은 EclipseLink로 전환 할 수있는 방법을 제안

+0

을 비롯하여 거의 모든 다른 기술과 잘 통합됩니다. 고맙습니다. – user261002

+8

명시 적으로 말하면, Spring은 EJB가 전체 어플리케이션 서버를 필요로하는 JVM을 필요로합니다. – boardtc

+0

@boardtc Spring은 적어도 서블릿 컨테이너를 필요로합니까? AFAIK, Spring은 임베디드 Tomcat 인스턴스를 사용합니다. – Utku

4

EJB는 Enterprise Java Bean입니다. 설명은 링크를 참조하십시오. 기본적으로 엔터프라이즈 응용 프로그램을 작성하는 '기본'Java 방식입니다.

Hibernate는 ORM 프레임 워크입니다. 응용 프로그램의 객체/클래스를 데이터베이스 테이블에 매핑하는 방법입니다. 데이터를 데이터베이스에 저장하는 방법과 관련이 있습니다.

스프링은 IoC/Dependency Injection 컨테이너로, 유용하고 잘 테스트 된 많은 추상화를 제공하여 사용자의 삶을 편하게 만듭니다. Spring은 자체 애플리케이션 프레임 워크와 비슷합니다.

JSF는 Java 웹 응용 프로그램 용 뷰 기술인 Java Server Faces입니다.

EJB 또는 Spring 중 하나를 사용합니다. 필요하다면 Hibernate를 영속성 구현으로 사용할 수있다. 당신은 이것을 할 필요가 없습니다. RESTFul 웹 서비스의 경우 JSF가 실제로 필요하지 않습니다.

사람들은 봄에 매우 만족 - 나는 그것을 사용하는 것이 좋습니다 ...

2
  • JSF는 - 자바 서버 얼굴 -> 웹 사용자 인터페이스
  • EJB - 엔터프라이즈 자바 빈즈 -> 상태입니다 구성 요소 (sessioen 지향) 또는 statles (서비스), 메시지 구동 (비동기)
  • 최대 절전 모드 - 다른 JPA 구현 (EclipseLink가,는 OpenJPA 또는 상단 링크와 같은 지속성 서비스)
  • 봄은 다른 뷰 기술을 통합 할 수있는 EJB를하지 않고 다른 세계입니다. 융통성이 없어졌습니다.

JEE5/6과 스프링 사이를 결정해야합니다. 빨간색 또는 파란색 약을 복용하지 마십시오.

+2

좋은 개요. 하지만 빨강 또는 파랑 알약에 대해 : Spring은 EJB http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ejb.html –

6
  • JSF : -는 GUI 프레임 워크 만 백엔드
  • EJB 구현하려는 경우이 필요하지 않습니다 : 분산 된 구성 요소에 대한 표준, 끔찍하게 복잡한로 사용을하지만, 표준 버전 3은 아주 사용하기 쉽다. 이는 솔루션의 일부일 수 있습니다.
  • 최대 절전 모드 : 개체 - 관계형 매핑 프레임 워크. 이것은 JPA (Java Persistence Architecture) 표준에 영감을 불어 넣었으며, 현재는 Hibernate와 EJB 모두에서 지원됩니다.
  • 봄 : 의존성 삽입, 웹 GUI 및 AOP 중에서 모든 종류의 작업을 수행하는 응용 프로그램 프레임 워크입니다.

그러나 REST를 수행하려는 경우 가장 중요한 표준은 JAX-RS입니다. Spring 프레임 워크 내에서 또는 EJB와 함께 사용할 수 있습니다. 지속성을 위해, Hibernate 나 Glassfish와 같은 EJB 컨테이너의 JPA 구현을 사용할 수있다.