나는 우리가 영속 계층을 어떻게 노출할지 결정할 필요가있는 프로젝트를 진행 중이다.EJB3 대 데이터 액세스 객체
1) 일반의 DAO를 사용
현재 테이블에 두 개의 옵션이 있습니다. 이것들은 인터페이스를 구현하고 EJB 인 Business Components에서 (Weld를 사용하여) 주입 될 것입니다. 내부적으로 그들은 영속성을 위해 JPA/Hibernate를 사용할 것입니다.
2) Weld를 사용하여 DAO를 주입하는 대신 EJB로 구현하고 비즈니스 구성 요소에서 @EJB를 주입합니다.
기능을 사용하지 않을 때 지속성 계층에 EJB를 사용하는 것이 합리적입니까 (예 : 트랜잭션 관리 - 비즈니스 계층에서이를 처리)?
EJB over Weld (또는 다른 방법으로 라운드)를 사용할 때 성능상의 불이익이 있습니까?
어떤 옵션을 선택하는 것이 가장 좋을까요?
'컨테이너'에 배포하고 있습니까? 어떤 컨테이너 요? EJB3 *를 사용하면 잠재적으로 배포가 더욱 간단해질 수 있습니다. JEE6 IMHO를 사용하면 EJB를 피할 이유가 거의 없으며 많은 경우 *를 사용합니다. 2p 가치. –
여분의 EJB 기능 (예 : 보안, 트랜잭션 ...)이 전혀 필요없는 경우는 어떻습니까? CDI가 좋은 후보자라고 생각합니까? –