복붙노트

[SPRING] 내 비즈니스 계층에 EJB3 또는 Spring을 사용해야합니까?

SPRING

내 비즈니스 계층에 EJB3 또는 Spring을 사용해야합니까?

우리 팀은 웹 프론트 엔드가있는 새로운 서비스 지향형 제품을 개발 중입니다. 우리가 사용할 기술에 대한 논의에서 JBoss 응용 프로그램 서버 및 Flex 프론트 엔드 (Adobe AIR를 사용하여 가능한 데스크톱 배포가 가능한) 및 웹 서비스를 실행하여 클라이언트와 서버를 상호 작용하도록 합의했습니다.

우리는 비즈니스 논리에 어떤 서버 기술을 사용할지를 놓고 갈등을 겪었습니다. 큰 논점은 EJB3와 Spring 사이입니다. 확장 성 및 성능, 그리고 코드 기반의 유지 보수성이 가장 중요합니다.

여기 내 질문은 다음과 같습니다.

해결법

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

    1.성능에 따라 EJB3와 Spring의 차이는 크지 않습니다. 우리는 다음과 같은 이유로 Spring을 선택했습니다 (질문에 언급되지 않음).

    성능에 따라 EJB3와 Spring의 차이는 크지 않습니다. 우리는 다음과 같은 이유로 Spring을 선택했습니다 (질문에 언급되지 않음).

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

    2.EJB3와 Spring 사이의 간격은 이전보다 훨씬 작습니다. 즉, EJB3의 단점 중 하나는 이제 콩에 주입 할 수 있다는 것입니다. 따라서 구성 요소를 콩이 될 필요가없는 콩으로 만들 수 있습니다.

    EJB3와 Spring 사이의 간격은 이전보다 훨씬 작습니다. 즉, EJB3의 단점 중 하나는 이제 콩에 주입 할 수 있다는 것입니다. 따라서 구성 요소를 콩이 될 필요가없는 콩으로 만들 수 있습니다.

    단위 테스트에 대한 논쟁은 현재 상당히 무의미합니다. EJB3는 단위 테스트가보다 용이하도록 명확하게 설계되었습니다.

    위의 호환성 인수는 관련성이 없습니다. EJB3 또는 Spring 중 어느 것을 사용하든, 트랜잭션 관리자, JMS 등의 타사 제공 구현에 여전히 의존합니다.

    그러나 나를 위해 그것을 좌우하는 것은 지역 사회의 지원입니다. 작년에 EJB3 프로젝트로 작업하면서, 거기에 많은 사람들이 그것을 사용하고 그들의 문제에 대해 이야기하지 않았습니다. 봄은 옳고 그른가, 기업 내에서 매우 보편적으로 보편화되어있어 해결하려는 동일한 문제를 가진 사람을 쉽게 찾을 수 있습니다.

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

    3.EJB3와 Spring의 논쟁은 무엇입니까? Spring은 항상 혁신적이고 현실적인 제약을 인식합니다. Spring은 Java 1.4 응용 프로그램 서버에 단순함과 우아함을 제공했으며 2004 년에서 2006 년까지 아무도 액세스 할 수 없었던 J2EE 사양 버전을 요구하지 않았습니다.이 시점에서 여러분은 빨려 들어갈 수있는 거의 종교적인 토론입니다. + 추상화 + 오픈 소스와 Java Enterprise Edition (Java EE) 5.0 사양.

    EJB3와 Spring의 논쟁은 무엇입니까? Spring은 항상 혁신적이고 현실적인 제약을 인식합니다. Spring은 Java 1.4 응용 프로그램 서버에 단순함과 우아함을 제공했으며 2004 년에서 2006 년까지 아무도 액세스 할 수 없었던 J2EE 사양 버전을 요구하지 않았습니다.이 시점에서 여러분은 빨려 들어갈 수있는 거의 종교적인 토론입니다. + 추상화 + 오픈 소스와 Java Enterprise Edition (Java EE) 5.0 사양.

    Spring이 Java EE 사양과 경쟁하는 것 이상을 보완한다고 생각합니다. 한때 Spring 고유의 기능이 계속 사양에 반영됨에 따라 많은 사람들은 EJB 3이 대부분의 내부 비즈니스 응용 프로그램에 '충분한 기능'을 제공한다고 주장합니다.

    각각의 함정에서 나는 어떤 함정을 가질 수 있습니까? 이 문제를 영속성 문제 (Spring + JPA)와 EJB3에 대해 처리한다면 정말 큰 선택을하지 않을 것입니다.

    좋은 벤치 마크 정보는 어디에서 찾을 수 있습니까? 나는 언젠가 specj 벤치 마크 결과를 따르지 않았지만 그들은 잠시 동안 인기가 있었다. 각 벤더 (IBM, JBOSS, Oracle 및 Sun)는 호환 서버를 갖는 데 점점 더 관심을 갖지 않는 것으로 보입니다. 이 목록은 1.3, 1.4에서 나온 것처럼 공인 된 공급 업체 중 더 짧고 짧습니다. 1.5 Java Enterprise Edition. 모든 사양을 완벽하게 준수하는 거대한 서버의 시대는 끝났다고 생각합니다.

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

    4.나는 확실히 봄에 EJB3을 추천 할 것이다. 코드가 더 효율적이고 지원이 잘되는 것으로 나타났습니다. 나는 과거에 Spring을 사용하여 매우 혼란스럽고 EJB3 (또는 JPA 추측 컨데)만큼 잘 문서화되지 않았다.

    나는 확실히 봄에 EJB3을 추천 할 것이다. 코드가 더 효율적이고 지원이 잘되는 것으로 나타났습니다. 나는 과거에 Spring을 사용하여 매우 혼란스럽고 EJB3 (또는 JPA 추측 컨데)만큼 잘 문서화되지 않았다.

    나는 봄에 대해서 많이 말할 수 없다. 단지 몇 주 동안 만 시도했기 때문이다. 그러나 그것에 대한 나의 전반적인 인상은 매우 가난했습니다. 이것이 나쁜 프레임 워크라는 것을 의미하지는 않지만, 우리 팀은 EJB3가 영속성 / 비즈니스 계층에서 최상임을 발견했습니다.

  5. ==============================

    5.EJB3에 비해 Spring을 선호하는 경향이 있지만, EJB3를 사용하는 @PostConstruct, @PreDestroy 및 @Resource와 같은 JSR 주석과 같이 POJO를 작성하고 가능하면 표준 주석을 사용하는 방법을 선택하는 것이 좋습니다. 또는 Spring을 사용하면 선호하는 프레임 워크를 선택할 수 있습니다.

    EJB3에 비해 Spring을 선호하는 경향이 있지만, EJB3를 사용하는 @PostConstruct, @PreDestroy 및 @Resource와 같은 JSR 주석과 같이 POJO를 작성하고 가능하면 표준 주석을 사용하는 방법을 선택하는 것이 좋습니다. 또는 Spring을 사용하면 선호하는 프레임 워크를 선택할 수 있습니다.

    예 : IoC 대신 Guice를 사용하는 프로젝트를 결정할 수 있습니다.

    Guice가 웹 애플리케이션에서와 같이 사전 요청 주입을 사용하고자한다면, Guice는 Spring보다 종속성 주입에 약간 더 빠르다는 것을 알 수있다.

    세션 빈은 주로 의존성 주입 및 트랜잭션으로 종결된다. 그래서 EJB3와 Spring은 정말 비슷합니다. Spring이 JMS와 같은 것들에 대한 더 나은 의존성 삽입과 더 나은 추상화에 초점을 둔 곳

  6. ==============================

    6.나는 과거에 매우 유사한 아키텍처를 사용 해왔다. Spring + Java 1.5 + Actionscript 2/3은 Flex Data Services와 결합하여 코드 작성을 매우 쉽게 (재미있게) 만들었습니다. 하지만 Flex 프론트 엔드는 적절하게 강력한 클라이언트 시스템이 필요하다는 것을 의미합니다.

    나는 과거에 매우 유사한 아키텍처를 사용 해왔다. Spring + Java 1.5 + Actionscript 2/3은 Flex Data Services와 결합하여 코드 작성을 매우 쉽게 (재미있게) 만들었습니다. 하지만 Flex 프론트 엔드는 적절하게 강력한 클라이언트 시스템이 필요하다는 것을 의미합니다.

  7. ==============================

    7.귀하의 질문에 관해서 :

    귀하의 질문에 관해서 :

    전문가들의 답변을 읽는 것이 좋습니다 : 응답 : Mark Fisher의 EJB 3 및 SPRING 비교 분석. Reza Rahman의 발언 (EJB 3.0)을 찾으려면 주석을 읽으십시오.

  8. ==============================

    8.또 하나의 장점은 스프링과의 통합을위한 다른 도구 / 프레임 워크의 대부분이 내부적으로 스프링을 사용한다는 것입니다 (예 : activemq, camel, CXF 등).

    또 하나의 장점은 스프링과의 통합을위한 다른 도구 / 프레임 워크의 대부분이 내부적으로 스프링을 사용한다는 것입니다 (예 : activemq, camel, CXF 등).

    또한 더 성숙하며 EJB3보다 많은 리소스 (책, 기사, 모범 사례 등) 및 숙련 된 개발자가 있습니다.

  9. ==============================

    9.EJB는 좋은 컴포넌트 기술이지만 좋은 프레임 워크는 아니라고 생각합니다 .Spring은 현재까지 사용 가능한 최고의 프레임 워크입니다. 따라서 스프링을 프레임 워크의 관점에서 JEE의 최상의 구현으로 간주해야하며, 권장 사항은 모든면에서 봄을 사용하는 것입니다. 프로젝트를 통해 모든 구성 요소 기술과 쉽게 통합 할 수 있습니다.

    EJB는 좋은 컴포넌트 기술이지만 좋은 프레임 워크는 아니라고 생각합니다 .Spring은 현재까지 사용 가능한 최고의 프레임 워크입니다. 따라서 스프링을 프레임 워크의 관점에서 JEE의 최상의 구현으로 간주해야하며, 권장 사항은 모든면에서 봄을 사용하는 것입니다. 프로젝트를 통해 모든 구성 요소 기술과 쉽게 통합 할 수 있습니다.

  10. from https://stackoverflow.com/questions/68527/should-i-use-ejb3-or-spring-for-my-business-layer by cc-by-sa and MIT license