2
을 닫아야 할

여기 몽고의 cashbash을 사용하고하는 것은때 우리가 MongoConnection

case class A (id:String,name:String) 

class InsertClassA(a:A) 
{ 
    def inserA()={ 
    val mongoClient=MongoClient(hostName,port) 
    //get collection and insert record in mongo 
    mongoClient.close() 
    } 
} 

class UpdateClassA(a:A) 
{ 
    def UpdateA()={ 
    val mongoClient=MongoClient(hostName,port) 
    //get collection and update record in mongo 
    mongoClient.close() 
    } 
} 

class DeleteClassA(a:A) 
{ 
    def deleteA()={ 
    val mongoClient=MongoClient(hostName,port) 
    //get collection and delete record in mongo 
    mongoClient.close() 
    } 
} 

object test extends App { 
val a =A("123","bob") 
val insert =new InsertClassA(a) 
val update =new UpdateClassA(a) 
val delete =new DeleteClassA(a) 

insert.insertA() 
update.UpdateA() 
delete.deleteA() 
} 

나는 내가 mongoConnection을 닫아야 할 때 알고 싶은 내 코드? 위의 접근 방식이 맞습니까? 어떤 리소스를 낭비하지 말고 올바른 방법으로 mongoCLient 인스턴스를 활용할 수있는 올바른 방법이 있다면

답변

3

일반적으로 MongoClient는 긴 수명 (예 : 애플리케이션 수명)에 맞게 고안된 중량 구성 요소입니다. 먼저 한 번 열어 참조를 유지하십시오.

+0

우리가 열어두면 자원을 낭비 할 것입니까? – swaheed

+0

아닙니다. 모든 시간을 다시 할당하면 가비지 수집기와 새 객체 생성에 추가로드가 발생하지만 동일한 양의 메모리/소켓 핸들을 가지게됩니다. 단일 인스턴스가있는 경우 인스턴스를 한 번만 할당하면 CPU에 훨씬 적은 오버 헤드가 발생합니다. – mtj