복붙노트

[SPRING] Spring 3.0 대 Java EE 6.0 [닫기]

SPRING

Spring 3.0 대 Java EE 6.0 [닫기]

나는 상황에 직면 해있다.

Spring 3.0과 Java EE 6.0 사이에서 Java EE 개발의 관점에서 어떤 접근 방식을 취해야하는지에 대한 조언을 요청 받았습니다. 저는 Spring 2002의 고전적인 Java EE 5 개발, 특히 JBoss에 대한 발기인이었으며, 이전의 애플리케이션을 Spring으로 마이그레이션하고 여기에 개발 정책의 재 정의에 영향을 주어 Spring 관련 API를 포함 시켰습니다. JBoss가 무거운 것보다 Spring + Tomcat과 같은 더 가벼운 솔루션을 육성하기위한 전략적 계획을 개발하고 있습니다. 지금 JBoss를 단순히 웹 컨테이너로 사용하고 있는데, 저는 이것을 "컨테이너 역설 내부의 컨테이너"라고 부릅니다. 즉, 대부분의 API가있는 Spring 애플리케이션을 JBoss 내부에서 실행하기 때문에 우리는 Tomcat으로 마이그레이션하는 과정에 있습니다.

그러나 Java EE 6.0이 출시되면서 Spring은 그 당시에 매력적이었고 쉬운 배포, 적은 연결, 일부 종류의 D.I 등이 어떤 방식 으로든 모방 된 것으로 보입니다. JSF 2.0, JPA 2.0, WebBeans, WebProfiles 등

그럼, 문제는 ...

관점에서, 얼마나 안전하고 논리적인지, Java EE 6.0이 제공하는 새로운 관점에서 볼 때, Spring과 같은 비표준 Java EE 개발 프레임 워크에 계속해서 투자해야합니다.

스프링 개발을 3 ~ 4 년 더 연장 할 수 있을지 아니면 Java EE 6.0 API 및 그 실천을 조기에 채택 할 것을 권장합니까?

나는 이것에 대한 어떤 통찰력도 감사 할 것이다.

해결법

  1. ==============================

    1.중요한 포인트 IMHO는 기능 중 하나가 아닙니다. 이와 관련하여 스프링은 OpenSource VS에서 당연한 것처럼 JavaEE보다 앞서 나갈 것입니다. 표준. JavaEE의 경우 컨테이너 통합 테스트가 JavaEE 6의 새로운 기능이며 Spring에서 몇 년 동안 사용 가능해졌습니다.

    중요한 포인트 IMHO는 기능 중 하나가 아닙니다. 이와 관련하여 스프링은 OpenSource VS에서 당연한 것처럼 JavaEE보다 앞서 나갈 것입니다. 표준. JavaEE의 경우 컨테이너 통합 테스트가 JavaEE 6의 새로운 기능이며 Spring에서 몇 년 동안 사용 가능해졌습니다.

    가장 중요한 포인트 IMHO는 관리 및 개발을위한 라이프 사이클 중 하나입니다. JavaEE를 선택하면 프로그래밍 모델을 인프라에 연결합니다. 대개 앱 서버 벤더는 새로운 표준 버전을 가장 빨리 채택하지 않습니다 (WebSphere, JBoss, 무엇을 가지고있는 가를 비난 함). 따라서 우리는 연말까지 대기업에서 생산 준비가 완료된 JavaEE 6 지원 제품을 보지 못할 것입니다.

    그렇다면 IT 부서와 예산 관리 담당자가이 새 버전으로 업그레이드 할 수 있도록 관리의 장애물을 감수해야합니다. 이 측면에서 볼 때 JavaEE 6는 많은 상점에서 선택의 여지가 없습니다. 앱을 배포하려는 대상을 선택할 수 있습니까? 프로덕션을 위해 글래스 피쉬를 선택 하시겠습니까? 어서, 해봐. 대부분의 상점은 "편안한"상황에 있지 않습니다.

    정확히 반대 : 봄. 인프라에서 프로그래밍 모델 분리. 현재 3.0.x를 사용하고 Tomcat 또는 레거시 응용 프로그램 서버에서 @Inject, JPA 2 등을 사용하십시오.

  2. ==============================

    2.이미 스프링 샵이라면 왜 전환을 방해합니까? Tomcat이 매우 성숙하고 어디에서나 실행되기 때문에 당신은 행복합니다. 원하는대로하고, 적극적으로 개발합니다. Tomcat 외부에서 실행하려고하지 않을 것입니다. 따라서 Java EE가 제안 할 수있는 이식성에 대한 약속은 바로이 창에서 가능합니다.

    이미 스프링 샵이라면 왜 전환을 방해합니까? Tomcat이 매우 성숙하고 어디에서나 실행되기 때문에 당신은 행복합니다. 원하는대로하고, 적극적으로 개발합니다. Tomcat 외부에서 실행하려고하지 않을 것입니다. 따라서 Java EE가 제안 할 수있는 이식성에 대한 약속은 바로이 창에서 가능합니다.

    나는 봄에서 벗어날 이유가 없다.

  3. ==============================

    3.윌과 올리버가 이미 가장 중요한 것들을 말했기 때문에 나는 그것을 덧붙일 것입니다 : "그것이 효과가 있고 일을 끝내면 혼자 남겨주세요!". "Newer"와 "standardized"는 항상 "더 나은"것은 아닙니다. 실제로는 거의 그렇지 않습니다. 새로운 것들은 무뚝뚝하고 버그가 많습니다. Java EE 6의 나머지 부분이 JSF2.0 (및 모든 Rich / Ice / Prime / WhateverFaces)으로 "표준화 된"것이라면, 지금 당장 Spring에 집중한다고 믿습니다. 많은 회사들이 이유 (안정성> *)를 위해 조금 더 오래된 기술을 고수하고 있으며, Spring은 수년간 시장에 나와 잘 설립되어 있습니다.

    윌과 올리버가 이미 가장 중요한 것들을 말했기 때문에 나는 그것을 덧붙일 것입니다 : "그것이 효과가 있고 일을 끝내면 혼자 남겨주세요!". "Newer"와 "standardized"는 항상 "더 나은"것은 아닙니다. 실제로는 거의 그렇지 않습니다. 새로운 것들은 무뚝뚝하고 버그가 많습니다. Java EE 6의 나머지 부분이 JSF2.0 (및 모든 Rich / Ice / Prime / WhateverFaces)으로 "표준화 된"것이라면, 지금 당장 Spring에 집중한다고 믿습니다. 많은 회사들이 이유 (안정성> *)를 위해 조금 더 오래된 기술을 고수하고 있으며, Spring은 수년간 시장에 나와 잘 설립되어 있습니다.

    @편집하다: 특히 @ymajoros의 경우 : JSF (1.x 및 2.x)는 여러 가지 이유로 인해 결함이있는 표준이며 소수의 경우에만 유용합니다 (예 : 크고 간단한 CRUD 웹 사이트를 만들거나 자바 EE 애호가) :

    JSF를 JAX-RS와 어떻게 든 통합 시켰습니까? 마지막으로 당신이 많은 개선을 할 수는 있지만 그 스펙은 완전히 분리되어 있기 때문에 체크했습니다. 예를 들어 backing 빈에서 @Path로 메소드에 주석을 달아서 REST 요청과 JSF 요청에 의해 처리되는 이유는 무엇일까요?

    어쩌면 그 중 일부는 (모든?) 문제가 해결되었지만이 답변을 작성했을 때 JSF와 일반적인 표준에 관한 모든 나쁜 것들 중에서 거의 사용되지 않았습니다.

    현재 아주 작고 단순한 CRUD 앱을 만들고 싶다면 Play 2.0 (RoR과 같은 거대한 반 패턴 임)이나 함께 갈 것입니다. 대규모 "엔터프라이즈 레벨"앱을 만들고 싶을 때 JS 프레임 워크 (예 : ExtJS)를 잡고 JS 구성 요소 라이브러리를 Java 백엔드 (예 : Spring)와 결합하면 오버 헤드없이이 작업을 수행 할 수 있습니다. 소위 표준이 가져올 것입니다.

    물론 JPA2, JAX-RS2와 같은 JEE6의 멋진 부분이 있습니다. bean 검증이 그렇게 나쁘지는 않습니다. 하지만 전체 표준 스택을 "표준"이라고 부른 이유는 (위에서 언급했듯이, 대부분의 스펙은 시너지 효과조차하지 못했습니다.) 매우 겸허 한 견해로는 잘못된 것입니다.

  4. ==============================

    4.Spring과의 작업이 Java EE보다 생산성이 높다는 사실을 눈치 챘을 것입니다. 나는 그들이 돼지 (Java EE)를 실제로 날게 만들 수 없을 것이라고 생각합니다. Java는 훌륭한 언어 / 플랫폼이며 Java EE를 사용하지 않습니다. 왜 당신은 오늘 봄을 가질 수 있다면 '일종의 의존성 주입'에 만족해야합니까?

    Spring과의 작업이 Java EE보다 생산성이 높다는 사실을 눈치 챘을 것입니다. 나는 그들이 돼지 (Java EE)를 실제로 날게 만들 수 없을 것이라고 생각합니다. Java는 훌륭한 언어 / 플랫폼이며 Java EE를 사용하지 않습니다. 왜 당신은 오늘 봄을 가질 수 있다면 '일종의 의존성 주입'에 만족해야합니까?

  5. from https://stackoverflow.com/questions/2822812/spring-3-0-vs-java-ee-6-0 by cc-by-sa and MIT license