현재 MongoDB에서 데이터를 모델링하기 위해 Morphia를 활용하기 위해 JavaEE 애플리케이션 중 하나를 다시 설계하고 있습니다. 우리는 JavaEE 6와 Seam 2.x를 사용하여 애플리케이션의 기반을 제공합니다. 제 질문은 Morphia Datastore
과 DAO
개체에 어떤 범위를 사용해야합니까? Application
범위를 사용하고 응용 프로그램 전체에서 단일 인스턴스를 사용하는 것이 안전합니까? 또는 Request
과 같은보다 구체적인 범위를 사용해야합니까? Application
범위를 사용하지 못하게하는 동시성이나 다른 문제가 있습니까?Morphia Datastore의 JavaEE 범위?
1
A
답변
1
DatastoreImpl에는 상태가 거의 없습니다. 쓰기 문제, 매퍼 및 일부 디코더 항목이 있습니다. 이러한 설정이 일반적으로 응용 프로그램에 대해 범용 인 경우이 인스턴스는 응용 프로그램 범위에서 잘 공유 될 수 있습니다. BasicDAO를 사용한다면 유일한 상태는 그것이 작동하는 엔티티 클래스와 이미 다룬 Datastore입니다. 이것은 또한 일반적으로 공유하는 것이 안전합니다.
일반적으로 이러한 구성 요소의 대부분은 동시 액세스를 손상시킬 수있는 매우 작은 변경 가능 상태를 갖습니다. 항상 테스트하는 것이 좋지만,이 경우에는 매우 안전한 방법입니다.