2012-12-08 3 views
2

JSF 구현이 제공하는 다른 UI 구성 요소 집합과 별도로 JSF를 봄 MVC와 함께 사용하면 어떤 이점이 있는지 알아 내려고합니다. 둘 다 MVC이고 둘 다 서로 다른 Perspective 탐색 처리 방식을 사용합니다 (둘 다 이해하기 쉽습니다). 내 애플리케이션에서 JSF와 Spring MVC를 함께 사용한다고 가정하면 설계, 구현 및 유지 보수에 대한 이점은 무엇인가?스프링 MVC를 사용하는 JSF의 장점은 무엇입니까?

답변

7

둘 다 MVC이지만 JSF는 컴포넌트 지향이며 Spring MVC는 액션 기반입니다.

이러한 용어가 무엇을 의미하는지 정확히 파악할 수 있지만 짧은 JSF에서는 UI를 고급 수준의 시각적 빌딩 블록 (슬라이더, 패널, 진행률 막대 등)으로 합성 할 수 있습니다.

스프링 MVC는 실제 UI에 대해 그렇게 많이 말하지 않습니다. URL 경로 및 매개 변수에 매핑하는 컨트롤러를 강조합니다. 처리가 끝나면 뷰 (일반적으로 JSP이지만 나중에 Thymeleaf가 자주 사용됨)를 렌더링하는 대상으로 직접/전달합니다.

JSF는 Java EE의 일부이며 Spring MVC의 "클래스 대 URL"바인딩 측면이 다소있는 프레임 워크와 함께 제공됩니다. JAX-RS. JAX-RS 자체는 MVC 나 요청 기반 웹 프레임 워크가 아니라 웹 서비스 프레임 워크입니다.

하나의 앱에서 두 가지 다른 웹 프레임 워크를 사용하는 것은 매우 혼란스럽고 권장 할 수 없습니다.

2

대기자 !!!

  • 모델 : 애플리케이션
  • 보기 사용하는 데이터를 액세스하는 방법을 제공

    MVC 사이 (애플리케이션 아키텍처) 개념 분할을 생성 아키텍처 패턴이다 : 모델에 포함 된 데이터의 표시를 처리하고 사용자 및 에이전트와의 상호 작용을 관리합니다.

  • 컨트롤러 : (일반적으로보기를 통해) 및 다른 두 구성 요소의 상태 변경을 구현합니다.

이 구성표는 다른 것들 중에서도 응용 프로그램 논리 (이 컨텍스트에서는 종종 비즈니스 논리라고도 함)), 컨트롤러와 모델 및 뷰를로드하는 사용자 인터페이스

MVC는 아키텍처 패턴이며 특정 언어 또는 특정 기술과 관련이 없습니다. 스프링 MVC는이 패턴을 구현하는 자바 프레임 워크입니다 !!!

보기에는보기 내에 직접 태그 라이브러리를 사용하여 선언해야하는 미리 만들어진 구성 요소 (특정 View 프레임 워크에서 구현 됨)를 제공하는 JSF (Java Server Faces)를 비롯한 다양한 기술을 사용할 수 있습니다. .

요즘에는 PrimeFaces 및 IceFaces와 같은 JSF에서 파생 된 많은 무료 View 프레임 워크가 있습니다.

JSP와 기본적으로 AJAX 프로그래머 숨어 있기 때문에 개발자가 당신에게 설명 PrimeFaces 구성 요소 쇼케이스 좀보고 당신을 제안 그것

에 대해 걱정할 필요가 없습니다 지원 그것에 의해 파생 된 모든 프레임 워크 이 뷰 기술의 모든 힘 : 당신이 깊이 특히 알 또는 자바 스크립트를 사용하지 않고 그것을 모른 채 AJAX 양식을 처리 할 수 ​​있습니다 예를 들어

http://www.primefaces.org/showcase/ui/home.jsf

. http://www.primefaces.org/showcase/ui/pprUpdate.jsf

당신은 형태, 메뉴 및 다른 많은 물건

가장 큰 장점 많은 구성 요소를 사용할 수 있습니다보기 이러한 종류의 기술을 사용하여 :

은 쇼케이스에서 찾을 수있는 간단한 AJAX 형태의 예이다 구성 요소 대신에 JavaScript를 한 줄 쓸 필요가 없습니다.

+0

글쎄, JSF 구현 제공자가 많은 풍부한 구성 요소로 쉽게 생활 할 수 있다는 사실을 알게되었다. Spring MVC에서 JSF를 사용하면 어떤 이점이 있습니까? 장점은 JSF 만 선택하면 100 라인 코드를 작성하지만 스프링 MVC가있는 JSF는 코딩이 80 줄로 줄어든다는 것을 의미합니다. 또한 또 다른 시나리오는 자주 변경해야하는 응용 프로그램을 개발할 때 JSF와 Spring MVC를 선택하는 것이 어떻게 도움이 될까요? 유지 보수가 덜 고통 스럽습니까? – Chetan

+0

주요 이점은 미리 만들어진 대신에 Javascript (또는 JQuery와 같은 Javascript 프레임 워크)를 모르는 상태에서 RIA 뷰 (Rich Internet Interfaces : http://en.wikipedia.org/wiki/Rich_Internet_application)를 구현할 수 있다는 것입니다 가장 일반적인 용도에 매우 적합합니다. 실제적으로 Javascript를 알 수없고 공통 유스 케이스 (양식, 메뉴, etcetc 다루기)를 구현해야 할 때마다 바퀴를 재발 명할 필요가 없다. – AndreaNobili

+0

JSF와 Spring MVC를 함께 사용하는 것에 대한 견해에 동의하지 않는다. JSF는 순수한 뷰가 아닙니다. Facelets는 JSP입니다. 뷰를 지향하지만 전체 MVC 프레임 워크를 유지합니다. JSF와 Spring MVC는 Struts와 같은 수준의 IMHO입니다. –

1

다른 답변에서 정의를 반복하지 않겠습니다. JSF (및 그 구성 요소 스위트)는 모든 것을 한 번에 붙이고 업무 규칙에만 초점을 맞추거나 (또는 ​​앱에 가치를 추가하는 것) 구성 요소를 결합하여 UI를 작성하기 때문에 애플리케이션을 더 빨리 개발할 수 있습니다. Javascript 용 구성 요소 또는 콘서트를 주로 테스트합니다.

봄 MVC에서는 천천히 시작하지만 구성 요소 (주로 JSF와 통신하는 Javascript UI)에 의존하지 않고 원하는 것을 구현하거나 심지어 많은 번거 로움없이 웹 서비스를 구현할 수 있습니다. 그러나 그러한 UI 구성을 테스트하고 테스트하고 테스트해야합니다.

하이브리드를 찾고 있다면 Spring Web Flow이 도움이 될 수 있습니다. Spring MVC 컨트롤러를 위해 JSF 컴포넌트와 훌륭한 추상화 레이어를 사용할 수 있으며 원하는 경우에도 사용할 수 있습니다.

관련 문제