2009-05-04 10 views
4

동료들에 의해 개발 된 일부 JSF 프로젝트를 보았는데이 프로젝트는 저에게 느린 것처럼 보였습니다. 누구나 같은 의견을 갖고 있습니까?JSF와 스프링 성능 대 JSP 성능이 좋지 않음

"rich"클라이언트에 대해 jsp + jstl 및 jQuery를 사용하고 있습니다.

옛날 일반 JSP보다 현대 프레임 워크 (jsf, 개찰구, 태피스 트리 ..)가 어떤 장단점이 있는지 궁금합니다.

이러한 모든 기술을 사용하는 사람들이 대답했다면 좋을 것입니다.

가장 흥미 진진한 기능을 사용하면 jsp를 그대로두고 "거대한"프레임 워크를 사용할 수 있습니다. (예를 들어 Spring의 AOP 또는 눈에 띄는 것이 무엇이든간에).

모든 의견을 제공해 주셔서 감사합니다.

답변

8

저는 CGI, PHP, JSP, Struts, Spring MVC (1.2), Bea 워크샵, JSF, JBoss Seam, Spring MVC (2.5) 및 Wicket (이 순서대로)을 사용했습니다. 필자는 작업 한 신기술의 생산성과 품질면에서 모두 뛰어 올랐습니다. 그냥 잘 작동, 그것 더 나은 느낌. 나는 Wicket (봄, 석영 등의 꼬임)을 선호한다. 나는 솔직히 내가 빛을 보았다고 말할 수있다. 나는 더 어둡거나 밝은 빛으로 돌아가고 싶지 않다.) - 측면.

개찰구에 관해서는 많은 이야기가 있습니다.

  • 대화식 지원 (또는 탭 사용)이 기본적으로 제공되므로 "새 탭에서 열기"및 "뒤로"버튼 문제에 대해 다시 걱정하지 않아도됩니다.
  • 구성 요소 기반이므로 코드를 다시 사용할 수 있습니다.
  • 유형 안전 불가사의처럼 표준 Java를 많이 사용합니다.
  • URL 암호화와 같은 고급 보안 기능을 지원합니다.
  • 기본적으로 클러스터 가능한 응용 프로그램입니다.
  • 그리고 가장 중요한 것은 fun입니다.

JSP와 JSF를 향상시키는 데는 많은 부분이 있습니다.

  • 나를 괴롭히는 한 가지는 "EL"넌센스입니다. 이는 멋진 자바 유형의 안전성과 강도를 깨뜨리는 것입니다.
  • 높은 생산성을 위해 툴링 지원이 필요합니다.
  • JSF를 사용할 수있게 만드는 seam 프레임 워크에서 볼 수있는 것처럼 실제로 문제를 해결하기 위해서는 두 프레임 위에 다른 프레임 워크가 필요합니다.
  • 오류 처리는 매우 까다 롭습니다. 예외는 아주 유용하지 않습니다.
  • 두 프레임 워크 모두에서 재사용 가능한 구성 요소를 만들기가 어렵고 문제를 분리하기위한 적절한 모델을 지원하지 않습니다.
  • ... 그리고 가장 중요한 것은 작은 통증이 길거나, this 또는 this입니다. 스프링 MVC의
+0

예 개찰판은 괜찮습니다! 또한 Grails (매우 강력한 ORM Layer로 GORM 사용)를 시도해야합니다. 레일상의 루비와 비슷합니다. –

2

많은 장점이 있습니다. 마지막 프로젝트에서 을 사용한 JSF의 장점을 열거 할 수 있습니다.

    (스트럿처럼) 탐색을위한
  • 중앙 집중식 장소 당신은이
  • 가 많은 일부 레이아웃 논리를 용이하게 레이아웃 렌더링 등 날짜 선택기, 자동 완성, 페이징, 같은
  • 구성 요소 .
  • 스트럿과 마찬가지로 타일을 사용할 수 있습니다.

JSP는 비즈니스 로직과 레이아웃을 명확하게 구분하지 않습니다.

어쨌든 비록이 모든 장점과 당신이 자바 프로그래머라면 내가 알기에 Grails을 알기에 도움이된다.

+3

이름은 이제 "Grails"입니다. 루비 온 레일스 (Ruby on Rails) 사람들이 그것을 바꾸라고 요청했습니다. –

+0

잘 알고 있습니다. 댓글 주셔서 감사합니다. 너 나 한테 한점있어. – Luixv

+0

Grails에 대한 두 가지 대안은 다음과 같습니다. 1. Lift (http://liftweb.net/). JVM에서 실행되지만 스칼라를 배워야한다. (스칼라는 배울 수있는 훌륭한 언어이지만 :-)). JRuby on Rails는 JVM (http://wiki.jruby.org/wiki/JRuby_on_Rails)에서 실행되는 레일즈입니다. 다시 말하지만, JRuby가 JVM에서 실행 되기는하지만 Ruby를 배우려면 Ruby를 배워야합니다. – Javier

0

JSP는 매우 원시적입니다. 기본적으로 위젯이 없으며 모든 것을 직접 만들어야합니다. JSF는 개선이 자바를위한 최고의 웹 프레임 워크가 아니지만 - GWT와 같이 훨씬 인상적인 결과를 얻을 수있는 많은 것들이 있습니다.

+3

이것은 편향 될 수 있지만 GWT (http://code.google.com/webtoolkit/)는 실제 웹 프레임 워크보다 웹 FRONTEND 프레임 워크입니다. – Javier

+0

나는 또한 JSP에서 아무런 사용도 보이지 않는다. 특히 Java EE에서 그 존재를 보인다. 그것은 단지 선택적인 라이브러리 여야합니다. 그러나 대부분의 사람들은 콘텐츠와 코드 (안티 패턴)를 섞어 놓는 것처럼 보입니다. –

+0

@Javier 결국 사용자 경험이 끝나면 두 브라우저 모두에 전달됩니다. 사용자가 제대로 작동하고 행복하게 유지하는 한 사용자가 신경을 쓰지 않습니다. –

4

템플릿 기술로 JSP 2.0을 사용하고 싶습니다. 즉, 스프링 도메인 컨트롤러를 사용하여 도메인 객체에 액세스하고 특정 뷰에 필요한 모든 데이터를 준비하고이를 렌더링하기 위해 JSP로 남겨 두었습니다. JSP 2.0을 사용하기 때문에 다른 컴포지트 프레임 워크가 필요한 간단한 JSP 2.0을 사용할 수있는 템플릿 구성을 위해 태그 파일을 사용하고 싶습니다.

저는 기본적으로 프로그래밍중인 모든 것을 JSP에서 피합니다. 데이터 액세스, SQL, 스크립렛, 메소드 없음, 아무 것도 없음. 어쩌면 몇 가지 간단한 경우와 컬렉션 반복을 사용하여 기존의 컨트롤러 제공 데이터를 단순하게 표현할 수 있습니다.

+2

+1을 권장합니다. – zawhtut

+0

듣기 좋은데. Spring MVC와 같은 방식으로 JSP를 사용하고 있으며 매우 훌륭하고 빠릅니다. – marioosh

0

장점 :

  • 프레임 워크는 미묘하게 더 나은 설계 코드를 작성하는 것을 권장 : 의존성 주입을 사용하여, 그리고 분열 영역으로 응용 프로그램 디자인 (모델) 객체, 컨트롤러, 서비스 클래스 , DAO 등
  • 첫 번째 글 머리 기호의 부작용으로 코드의 길이가 이고 매우이며 쉽게 단위 테스트 할 수 있습니다.