2013-03-01 2 views
0

mongodb java concurrency driver에 따르면 MongoClient의 인스턴스 하나를 응용 프로그램 서버 내부의 여러 스레드에 사용할 수 있습니다. 이 작업을 수행하는 내가 아는 유일한 방법은 정적 블록에 MongoClient을 만드는 것입니다 :Java 응용 프로그램 서버에서 MongoClient 인스턴스 하나를 사용하는 방법

static { 
    MongoClient mongoClient = new MongoClient("localhost", 27017); 
} 

문제가 내가 MongoException을 잡아 사용자에게 일부 helpfull 정보를 반환 할 수 있습니다. 그렇다면 Java EE 애플리케이션 서버 내의 다중 스레드간에 MongoClient의 단일 인스턴스를 공유하는 방법은 무엇입니까?

답변

1

당신은 다음 중 하나를 수행 할 수 있습니다 :

  1. 는 서비스 클래스를 작성하고
  2. 이 시도 캐치를 추가 실패 할 때 오류를 보여주는 첫 번째 요청에 유유히 몽고 연결을 시작하고 정적 오류를 기억 (난 정말이 일을 좋아!하지만 정적 맥락에서 예외에 실패보다 더하지 않음) 몽고를 초기화
  3. 사용 스프링 (내 원하는 옵션)
+0

첫 번째 옵션은 DAO 클래스를 사용하는 의미를? –

+0

아니요, 이는 서비스 역할을하는 클래스가 있음을 의미하며 백엔드에서 연결을 수행하는 싱글 톤 인스턴스를 노출하고 연결이 실패하면 예외를 throw합니다. 그냥 mongo 인스턴스에 직접 액세스하지 말고 일부 "서비스"가 처리하도록하십시오. – TheZuck

관련 문제