나는 이것을 잠시 생각해 왔으며 프리젠 테이션 계층을위한 JSF 프로젝트에서 콩/클래스를 구성하는 방법에 대한 모범 사례를 아직 내놓지 않았다. 분명히 많은 요소들이 작용하고 있지만, 나는 토론하고 싶다. 여기에 내 생각의 라인이있다 :JSF에서 백킹 빈 조직
뷰 페이지 (데이터보기)와 편집 페이지 (데이터 추가, 업데이트, 삭제)가 포함 된 기본 JSF (여전히 불행히도 JSF 1.xx에 붙어있다) 애플리케이션을 생각 해보자.). 여기에 내가 프로젝트를 구성 할 방법은 다음과 같습니다
- 보기 관련 물건 (등, 논리 렌더링 상태를 저장) :
요청을 BackingBean을 범위. 하나의 요청으로 만 필요한 항목
- 작업, 액션 리스너 및 값 변경 리스너. 둘 이상의보기에 적용 할 수있는 경우 해당보기로 구분할 수 있습니다. 하나 개의 요청보다 더 오래 남아있을 필요가
- 아무것도 :
는 세션 BackingBean을 범위. 데이터베이스 데이터, SelectItems 등
- 이 빈은 요청 빈에 주입하고, 데이터의 저장 인스턴스는
데이터 개체 개체 :
- 것은이가 이해하지 않는 것을 데이터 오브젝트를 bean으로 작성하여 별도로 저장합니다. 이것은 User, Book, Car, 페이지에 표시 할 개체와 같은 것입니다. 목적은 등)과 같은 getFormattedName (같은 뷰 헬퍼 메소드를 포함 할 수 있습니다
DAO :
- 비즈니스 로직 계층의 모든 상호 작용을 처리하는 비 빈 객체입니다. 데이터 bean을로드하고 제출 등을 준비합니다. 보통이 메소드를 공용 정적 메소드로 만듭니다.
컨버터, 검사기 :
- 별도의 파일
이 모든 것을이 평균 JSF 응용 프로그램에 필요한 것 같다. 나는 이것을 통해 읽었습니다 : http://java.dzone.com/articles/making-distinctions-between, 여기에 답장 : JSF backing bean structure (best practices), 그러나 나는 우리가 완벽한 그림을 얻은 것처럼 느껴본 적이 없었습니다. BalusC의 응답은 도움이되었지만 전체 앱을 다루는 것 같지 않았습니다. 네 생각을 말해봐!
나는 그 질문에 대답 한 사람이 아니 었습니다. 더욱이 나는 개인적으로 그 대답에 동의하지 않는다. 또한 http://stackoverflow.com/questions/7223055/distinction-between-different-types-of-managed-beans도 참조하십시오.이 답변을 보완하기 위해 다음과 같은 답변이 도움이 될 수 있습니다. http://stackoverflow.com/questions/ 7031885/bean-scope 선택 방법 True, JSF 2.x, JSF 1.x에도 똑같은 원리가 적용됩니다. – BalusC
그 첫 번째 링크는 내가 링크하려는 의미입니다. 나는 거기에 당신의 대답을 따라 조금 문제가있었습니다. 만약 내가 올바르게 이해했다면, 모델 빈은 내 데이터 객체와 비슷합니다. 컨트롤러/관리 빈은 백킹 빈과 비슷한 하나의 빈이어야합니다. 세션 양을 최소화하기 위해 두 개로 나눕니다. 데이터. 정확하니? – bhouse