엔터프라이즈 Bean 개발 우수 사례
엔터프라이즈 Bean 디자인 및 개발 시 다음 가이드라인을 사용하십시오.
- Stateless 세션 Bean을 사용하여 비즈니스 로직의 시작점으로 작동합니다.
- 엔티티 Bean은 컨테이너 관리 지속성을 사용해야 합니다.
- EJB(Enterprise JavaBeans) 버전 2.x 이상 버전 환경에서, 로컬 인터페이스를 사용하여
동일 JVM(Java Virtual Machine)에서 엔터프라이즈 Bean 사이의 통신을 개선합니다.
로컬 호출은 RMI/IIOP의 오버헤드를 방지하며 pass-by-value 대신 pass-by-reference 시맨틱을 사용합니다. 각 호출의 경우, 호출자 및 피호출자 Bean은 인수 상태를 공유합니다. EJB 2.x 이상 Bean에는 로컬 및 원격 인터페이스 모두가 있을 수 있지만 보다 일반적으로 하나가 있을 수 있습니다.
- 원격 클라이언트와의 통신을 위해 원격 및 원격 홈 인터페이스를 제공합니다. 서블릿, 엔티티 Bean 및 메시지 구동 Bean과 같은 로컬 클라이언트와의 통신을 위해, 로컬 및 로컬 홈 인터페이스를 제공합니다.
컨테이너 관리 지속성을 위해 일괄처리된 명령
JDBC 2.0에서부터, PreparedStatement 오브젝트는 일괄처리로 함께 제출될 수 있는 명령 목록을 유지보수합니다. 다중 데이터베이스 라운드트립 대신, 일괄처리된 모든 지속성 요청에 대해 하나의 데이터베이스 라운드트립만 있습니다.
EJB CMP(Container Managed Persistence)에 이 기능을 사용할 수 있습니다. 수행 시, 필요로 할 때까지 런타임은 ejbStore/ejbCreate/ejbRemove 또는 동등한 데이터베이스 지속성 요청(insert/update/delete)을 지연합니다. 트랜잭션 끝에서 또는 이 EJB 유형과 관련된 파인더에 대해 비우기가 필요한 경우일 수 있습니다. 지속성 조작이 결국 발생하면 런타임은 데이터베이스 요청을 축적하며 JDBC PreparedStatement 일괄처리 조작을 사용하여 동일 조작의 복수 행에 대해 단일 JDBC 호출을 작성합니다.
제품을 사용하면 어셈블리 도구를 이용하여 동일한 설정을 작성할 수 있습니다.
컨테이너 관리 지속성을 위한 지연된 작성
ejbCreate 중 CMP의 경우, 컨테이너는 데이터베이스에 바로 엔티티의 표시를 작성하거나 나중으로 지연할 수 있습니다.
EJB CMP 측에서 이 옵션을 켤 수 있습니다. 이 옵션 선택 시, 필요할 때까지 런타임은 ejbCreate, 또는 동등한 데이터베이스 지속성 요청을 지연합니다. 트랜잭션 끝에서 또는 이 EJB 유형과 관련된 파인더에 대해 비우기가 필요한 경우일 수 있습니다. 이를 수행하여 새로 작성된 엔티티(삽입 및 업데이트)에 대한 두 라운드 트립을 하나(삽입)로 줄일 수 있습니다.
제품을 사용하면 어셈블리 도구를 이용하여 동일한 설정을 작성할 수 있습니다.