programing

Java EE 6.0과 비교한 봄 3.0

lastmoon 2023. 8. 5. 10:51
반응형

Java EE 6.0과 비교한 봄 3.0

난 지금 상황에 직면해 있어요...

Spring 3.0과 Java EE 6.0 사이의 Java EE 개발과 관련하여 어떤 접근 방식을 취해야 하는지에 대한 조언을 요청받았습니다.저는 클래식 Java EE 5 개발보다 Spring 2.5 개발의 발기인이었으며, 특히 JBoss와 함께 오래된 앱을 Spring으로 마이그레이션하고 개발 정책의 재정의에 영향을 미쳤으며, Spring 관련 API를 포함하도록 했으며, Spring + Tomcat과 같은 보다 가벼운 솔루션을 육성하기 위한 전략적 계획을 개발하는 데 도움을 주었습니다.JBoss의 더 무거운 것들 중 d는 현재 JBoss를 웹 컨테이너로만 사용하고 있으며, 제가 "컨테이너 내부의 컨테이너 역설"이라고 부르는 것을 가지고 있습니다. 즉, 대부분의 API가 JBoss 내부에서 실행되는 Spring 앱을 가지고 있기 때문에 Tomcat으로 마이그레이션하는 과정에 있습니다.

그러나 Java EE 6.0이 출시되면서 당시 Spring을 매력적으로 만들었던 많은 기능들이 구축이 쉽고, 커플링이 적으며, 심지어 일종의 D.저 등은 어떤 식으로든 모방된 것 같습니다.JSF 2.0, JPA 2.0, WebBeans, WebProfiles 등

그래서 질문은...

귀사의 관점에서 Java EE 6.0에서 제공하는 새로운 관점을 고려할 때 Spring과 같은 비표준 Java EE 개발 프레임워크에 계속 투자하는 것이 얼마나 안전하고 논리적입니까?

Spring 개발 기간을 3년에서 4년 정도 연장할 수 있는지, 아니면 Java EE 6.0 API와 그 관행을 조기에 도입할 것을 권장하십니까?

이것에 대한 통찰력을 주시면 감사하겠습니다.

IMHO의 중요한 점은 기능이 아닙니다.그런 점에서 OpenSource VS Standard의 경우 Spring이 항상 JavaEE보다 앞서는 것은 당연한 일입니다.한 가지 사실은 JavaEE와 비교해 봄에 훨씬 더 일찍 새로운 기능을 사용할 수 있다는 것입니다(예: 컨테이너 통합 테스트는 JavaEE 6의 새로운 기능이며 오랫동안 봄에 사용할 수 있었습니다).

IMHO의 가장 중요한 점은 관리와 개발을 위한 라이프사이클 중 하나입니다.Java EE를 선택하면 프로그래밍 모델을 인프라에 연결할 수 있습니다.일반적으로 앱 서버 공급업체는 새로운 표준 버전을 가장 빨리 채택하지 않습니다(WebSphere, JBoss, What have you).따라서 올해가 끝나기 전에 대기업 공급업체가 제품을 지원하는 Java EE 6의 운영 준비가 완료되지는 않을 것입니다.

그런 경우에도 관리, IT 부서 및 예산 관리 관리 관리자가 이 빛나는 새 버전으로 기꺼이 업그레이드하려면 여전히 어려움을 겪어야 합니다.이쪽에서 보면 Java EE 6은 많은 상점에서 선택할 수 있는 옵션이 아닙니다.앱을 배포할 대상을 선택할 수 있습니까?생산을 위해 Glassfish를 선택하시겠습니까?어서, 시도해보세요.대부분의 상점들은 그렇게 "편안한" 상황에 있지 않습니다.

정반대입니다. 에서 분리된 인프라에서 분리된 프로그래밍 모델. 3하여 현3.0.x로를 합니다.@InjectTomcat 또는 레거시 응용 프로그램 서버에 있는 JPA 2 등.

당신이 이미 봄 가게라면 굳이 바꿀 필요가 있습니까?여러분은 그것에 만족할 것이고, 그것은 여러분이 원하는 것을 하고, 활발하게 발전할 것입니다. 아마도 톰캣은 매우 성숙하고, 모든 곳을 뛰어다니기 때문에, 만약 있다면, 여러분은 아마도 곧 톰캣 밖으로 뛰쳐나갈 것을 기대하지 않을 것입니다.따라서 Java EE가 제안할 수 있는 이식성에 대한 모든 가능성은 창밖에 있습니다.

저는 봄을 떠날 이유가 없다고 생각합니다.

윌과 올리버가 이미 가장 중요한 것을 말했기 때문에 저는 "만약 그것이 효과가 있고 일을 한다면, 그것을 내버려 두세요!"라고 덧붙일 뿐입니다."새로운 것"과 "표준화된 것"이 항상 "더 나은 것"과 동일한 것은 아닙니다. 사실 거의 동일하지 않습니다. 새로운 것은 투박하고 버그 투박하며 널리 지원되지 않는 것이 저에게 가장 중요합니다.나머지 Java EE 6이 JSF 2.0(및 모든 리치/아이스/프라임/무엇이든 얼굴)만큼 "표준화"되어 있다면, 저는 지금 Spring을 고수할 것이라고 믿습니다.많은 회사들이 약간 오래된 기술을 고수하는 이유(안정성 > *), Spring은 수년간 시장에 출시되어 왔으며 잘 확립되어 있습니다.

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

  • 새로운 구성 요소를 만드는 것은 골치 아픈 일입니다.구성요소 기반 프레임워크이기 때문에 어렵지 않게 작업을 쉽게 할 수 있을 것으로 생각합니다.현재 저는 백엔드 접근 방식에서 JS+Java를 사용하는 것을 선호합니다. 왜냐하면 실제로 구성 요소를 만드는 것이 더 쉽기 때문입니다.JSF의 유일한 장점은 수많은 구성 요소 라이브러리가 있다는 것입니다.문제는 사용자가 무언가를 변경하거나 자신만의 구성요소를 만들고 싶을 때 시작됩니다.
  • 예외 처리가 엉망입니다(또는 지난 1~2년 사이에 뭔가 변경되었습니까?).
  • JSF는 너무 스테이트풀한 것에 문제가 있습니다. 잘못된 결정이 거의 없고 프로젝트에서 하나의 잘못된 개발이 있으며 앱의 절반이 스테이트풀하고 직렬화될 수 있습니다.
  • 표준의 UI 부분은 Java의 대부분의 컬렉션을 포함하지 않습니다(또는 적어도 이 답변을 작성할 때는 포함하지 않았습니다). 사실 상당히 포함된 데이터 구조만 목록이었습니다.

당신이 매우 좋아하는 표준에 대해 말하자면: 그들은 마침내 어떻게든 JSF와 JAX-RS를 통합했습니까?왜냐하면 지난번에 제가 확인한 바로는 당신이 많은 개선을 할 수 있음에도 불구하고 그 사양들은 완전히 분리되어 있었습니다.예를 들어, REST 요청과 JSF 요청 모두에서 처리되도록 백업 빈에 @Path가 있는 메서드에 주석을 달 수 없는 이유는 무엇입니까?

아마도 그 문제들 중 일부(모두?)는 현재 해결되었지만 제가 이 답변을 썼을 때 JSF와 일반적인 표준에 대한 모든 나쁜 점 중에서 거의 없었습니다.

현재 제가 아주 작고 간단한 CRUD 앱을 만들고 싶다면 플레이 2.0(하나의 거대한 안티패턴이지만)이나 RoR과 같은 것을 사용합니다.대규모 "엔터프라이즈 레벨" 앱을 만들고자 할 때는 JS 프레임워크(ExtJS 등)와 JS 구성 요소 라이브러리를 Java 백엔드(예: Spring 등)와 결합하여 표준이라는 오버헤드 없이 필요한 작업을 수행합니다.

JPA2, JAX-RS2와 같은 JEE6의 멋진 부분도 물론 있습니다. 콩 검증은 그렇게 나쁘지 않습니다.그러나 전체 표준 스택을 "표준"이라고 불렀기 때문에(위에서 언급한 바와 같이 대부분의 사양은 시너지 효과가 나지 않습니다) 사용하는 것은 매우 겸손한 의견으로 볼 때 잘못된 것입니다.

Spring과 협력하면 Java EE보다 생산성이 향상된다는 사실을 알게 될 것입니다.저는 그들이 절대로 돼지(자바EE)를 정말로 날게 할 수 없을 것이라고 생각합니다.Java는 훌륭한 언어/플랫폼입니다. Java EE로 무력화하지 마십시오.만약 당신이 오늘 봄을 가질 수 있다면, 왜 '의존성 주사 같은 것'에 만족하십니까?

언급URL : https://stackoverflow.com/questions/2822812/spring-3-0-vs-java-ee-6-0

반응형