복붙노트

[SPRING] Spring이있는 EJB3

SPRING

Spring이있는 EJB3

Spring 컨텍스트에서 EJB를 사용하면 "순수한"EJB3 환경에서 사용하는 것과 동일한 이점을 얻게된다는 것을 이해했습니다. 나는 봤지만 명확하고 명확한 답변을 찾을 수 없습니다.

예를 들어, 데이터베이스의 일부 테이블을 업데이트하고 시스템 예외를 throw하는 세션 빈이 있다고 가정 해 보겠습니다. "순수한"EJB3 환경에서 트랜잭션은 롤백됩니다. 예를 들어 Spring을 사용하여 @ bean을 호출하면 Spring은 EJB3 컨테이너와 같은 방식으로 트랜잭션 처리를 처리합니까? 또는 무엇을? 일부 특정 구성이 필요하거나 완전히 "자동"입니까?

해결법

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

    1.일반적으로 POJO + Spring 또는 EJB3를 사용합니다. 나는 당신이 "EJB in Spring"을 의미하는 것에 다소 혼란 스럽다.

    일반적으로 POJO + Spring 또는 EJB3를 사용합니다. 나는 당신이 "EJB in Spring"을 의미하는 것에 다소 혼란 스럽다.

    POJO + Spring과 EJB3는 현재 매우 비슷하며 선언적 트랜잭션 관리와 관련하여 동일한 기능을 제공합니다.

    나는 보안에 관한 모든 세부 사항을 알지 못한다. 그러나 두 기술 모두 매우 유사하다고 말할 수있다.

    실제로 Spring과 EJB3은 다른 스펙을 사용합니다. 중요한 것은 JPA (지속성), JTA (분산 트랜잭션), JMS (메시징), JDBC (데이터 소스)입니다. 이 두 가지 기술 스택에 대한 훌륭한 지원이 있습니다.

    두 기술 모두 매우 유연 해 졌으므로 사용할 내용을 선택할 수 있습니다. 따라서 EJB3를 앱에 포함시킬 수 있습니다. 매우 가볍습니다. 또는 완전한 모듈 형 앱처럼 거의 모든 모듈에 Spring을 사용할 수 있습니다. 섬기는 사람.

    EJB3 모델은 remoting, Stateful Session Bean (SFSB), 컨테이너 관리 트랜잭션 및 확장 된 지속성 컨텍스트와 같은 것들로 여전히 조금 더 풍부하다고 생각합니다. 또한 응용 프로그램에 따라 클러스터링을 지원할 수도 있습니다. 섬기는 사람. 그러나 이들은 거의 사용되지 않는 고급 기능입니다 (IMO는 전문 지식이 필요합니다).

    EJB3 대 스프링 참조

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

    2.spring은 많은 기능을 가지고 있는데, 그 중 하나는 트랜잭션 관리이다. 이것은 모든 다른 orm 구현 (jpa, raw hibernate, jdbc, jdo 등)에 공통적 인 추상화를 사용한다. 기본 동작은 트랜잭션 방식에서 런타임 예외로 인해 롤백이 발생하지만 (원하는대로) 롤백 규칙을 세밀하게 조정할 수 있다는 것입니다.

    spring은 많은 기능을 가지고 있는데, 그 중 하나는 트랜잭션 관리이다. 이것은 모든 다른 orm 구현 (jpa, raw hibernate, jdbc, jdo 등)에 공통적 인 추상화를 사용한다. 기본 동작은 트랜잭션 방식에서 런타임 예외로 인해 롤백이 발생하지만 (원하는대로) 롤백 규칙을 세밀하게 조정할 수 있다는 것입니다.

    그러나이 중 어느 것도 EJB가 필요하지 않습니다. EJB (stateless, stateful, mdbs)를 사용하지 않으면 JPA만으로도 충분하며 spring jpa 지원이 우수합니다. 이 경우의 90 %에서 Spring은 EJB가 없으면 필요한 모든 것을 제공합니다.

    편집하다:

    Spring EJB 통합에 대해 읽어라.

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

    3.Spring이 트랜잭션을 처리하고 그에 따라 롤백하도록 할 수 있습니다. 이를 수행하도록 구성해야하지만 EJB의 경우에도 마찬가지입니다.

    Spring이 트랜잭션을 처리하고 그에 따라 롤백하도록 할 수 있습니다. 이를 수행하도록 구성해야하지만 EJB의 경우에도 마찬가지입니다.

    삶의 어떤 것도 진정으로 "자동"은 아닙니다. 언젠가는 코드를 말해야합니다.

    진짜 질문은 : 왜 당신은 EJB와 Spring 모두 필요하다고 생각합니까? EJB를 사용하여 할 수있는 모든 일은 Spring과 함께 POJO를 사용하여 수행 할 수 있습니다. 여기서 EJB를 사는 것은 무엇입니까?

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

    4.아티클에 대한 링크가 포함 된 좋은 답변을 얻었습니다. 그리고 스프링과 함께 사용되는지 여부에 관계없이 Session Bean은 스프링 컨텍스트에서 정의 된 한 동일한 방식으로 작동합니다. . 이것에 대한 좋은, 간단한 기사를 발견 : http://java.dzone.com/articles/ejb-30-and-spring-25

    아티클에 대한 링크가 포함 된 좋은 답변을 얻었습니다. 그리고 스프링과 함께 사용되는지 여부에 관계없이 Session Bean은 스프링 컨텍스트에서 정의 된 한 동일한 방식으로 작동합니다. . 이것에 대한 좋은, 간단한 기사를 발견 : http://java.dzone.com/articles/ejb-30-and-spring-25

    그러나 나에게 그들은 모두 똑같이 좋기 때문에 단 하나의 대답만을 받아 들일 수는 없다. 그러나 정확히 그들 중 누구도 정확하게 대답 할 수 없다. 내 질문이 시작하기에 충분하지 않을 수 있었을 수있다.

    (나는 내 ​​자신의 질문에 대한 대답으로 이것을 게시 할 것을 제안했다)

  5. from https://stackoverflow.com/questions/2950070/ejb3-with-spring by cc-by-sa and MIT license