2011-05-11 3 views
2

GWT와 Hibernate를 사용하면 매우 풍부한 UI가 필요한 웹 응용 프로그램에 "정상적인"솔루션처럼 들리겠습니까?GWT와 최대 절전 모드

+0

http://beanlib.sourceforge.net/

는 최대 절전 모드 + GWT에 대한 검색을하고 당신은 대답은 '예'당신이 대답을 – Bozho

+0

당신을 감사 것을 알 수 있습니다. 나는 그것을했다. 스케일링은 내 관심사입니다. –

답변

2

간단히 말해서 예.

당신은이 개 요구 사항을 갖고있는 것 같다 :

풍부한 사용자 인터페이스 : 당신은 아마 알다시피, GWT는 리치 UI 응용 프로그램을 사용할 수 있습니다. 가능성은 거의 끝이 없습니다. Hibernate는 모든 하이버 네이트 엔티티가 클라이언트에게 보낼 때 GWT 모델로 매핑되어야 할 것이다 이후 가 실제로 데이터 모델과 함께 멋진 오버 헤드가 가리킨 1에

확장 성을 아무런 역할을하지 않는다. 사용자가 위에서 지정한대로,이를 수행하는 데 도움이되는 타사 응용 프로그램이 있습니다. 새로운 데이터 모델을 추가하면 서버 코드와 클라이언트 코드가 모두 변경됩니다. 그러나 아키텍처가 충분히 강력하다면 큰 문제는 아닙니다.

1

네, 많이 사용됩니다. 기본적으로 당신은 두 가지 옵션이 있습니다

  • 사용 DTO들과 항상 서버
  • 사용에 최대 절전 개체를 초기화 gilead
3

GWT와 최대 절전 모드가 자연 일치하지 않습니다. 두 가지 방법을 함께 사용하는 이유와 방법에 대한 자세한 내용은 http://code.google.com/intl/es-ES/webtoolkit/articles/using_gwt_with_hibernate.html을 참조하십시오.

을 요약하면, 당신은 3 가지 옵션이 있습니다하지만 :

  • 를 사용하여 일반 데이터 전송 객체 (DTO들)을.
  • Dozer를 사용하십시오. Dozer는 아직 DTO를 사용하고 있지만 Dozer가 대부분의 작업을 처리합니다.
  • GWT 측과 서버 측 사이의 "마법적인"변형을 위해 길르앗을 사용하십시오.

"마법의"솔루션은 훌륭하게 작동합니다. 그들이하지 않을 때, 잘, 행운을 빌어 요. 그래서 제가 신발에 있다면 옵션 1 또는 2를 선택합니다.

+0

Gilead는 더 이상 유지 관리되지 않으며 Hibernate 3.5+ (https://groups.google.com/forum/#!msg/toulouse-jug/pL1bNG3-gc0/rolqY-p-qGsJ)에서 작동한다는 보장은 없습니다. –

0

Gilead 미사일은 GWT 응용 프로그램에 대해 가장 많이 생각합니다. GWT 응용 프로그램을 3 계층 아키텍처로 설계 할 때 가장 먼저 생각해야 할 것은 웹 계층이 생성 된 gwt JavaScript UI이고 응용 프로그램 계층이 RPC 서비스라는 점입니다.하지만 그렇지 않습니다. 둘 다 웹 계층에 속합니다. 웹 계층을 생각할 때 일반적으로 표시해야하는 데이터에 대한 데이터 변환을 수행합니다. 그러나 이것은 길르앗을 사용할 때 발생하지 않으며 당신은 이것을 할 기회가 없습니다. 따라서 데이터베이스의 모든 데이터를 UI로 전송할 때도 Dozer와 같은 데이터 매퍼를 사용하는 것이 좋습니다. 응용 프로그램이 커지면 변환이 필요한 시간이 올 것입니다!

1

GWT 2.1 이상에서 해결 된 더 나은 솔루션은 RequestFactory 및 Entity/ValueProxy 메커니즘을 사용하는 것입니다. GWT의이 관용구에 대한 더 자세한 내용은 여기를 참조하십시오 http://code.google.com/webtoolkit/doc/trunk/DevGuideRequestFactory.html

+0

고마워요! 구글이 갭을 메우고있는 것 같아 rreyes1979와 같이 타사의 마술에 의존 할 필요가 없으므로 일이 쉬워졌습니다. –

1

이 정말 좋은 아키텍처,하지만 당신은 완벽하게 일치하는이 필요합니다 그것을 확인합니다.

//To response RPC with just the current entity 
    return new Hibernate3DtoCopier().hibernate2dto(entity); 

    //To response RPC with the entity with their related entities. 
    return new Hibernate3DtoCopier().hibernate2dtoFully(entity);