웹 프로젝트 조작 Mongodb 데이터 연결 과 다 이상 요약

2515 단어 mongodb
프로젝트 에 서 는 Mongodb 를 사용 하여 그림 과 파일 을 저장 합 니 다.배경 작업 에서 하 나 를 조작 하지 않 고 Mongo 대상 과 연결 풀 을 예화 하고 수 동 으로 닫 지 않 았 습 니 다.그 때 는 방문 이 증가 함 에 따라 연결 수가 계속 증가 합 니 다(db.server Status().connections 를 통 해 보기).마지막 으로 mongodb 가 웹 서비스 연결 을 거부 하고 웹 서버 에 이상 을 던 집 니 다.개 조 를 거 친 후에 Mongodb 의 초기 화 는 spring 을 통 해 예화 관 리 를 통 해 하나의 예 로 설정 되 었 습 니 다.코드 에서 기본 만 사용 하면 예화 되 지 않 습 니 다.서버 가 닫 히 면서 mongo 대상 과 연결 풀 이 닫 히 고 연결 수가 정상 적 입 니 다.
 
필요 에 따라 Mongo 와 관련 된 추가 삭제 와 수정 을 생 성 했 습 니 다.MongoManager 와 DataProcessDao 에 패키지 하여 프로젝트 에 가입 하 였 습 니 다.
 
클래스 생 성 MongoUtil
 
 
public class MongoUtil {
	private static MongoManager mongoManager;
	
	public MongoUtil() {
		if (mongoManager == null) {
			mongoManager = new MongoManager();
			mongoManager.getInstance();
			System.out.println("    Mongo");
		}
	}
	
	public DataProcessDao getDataProcessDao() {
		DataProcessDao dataProcessDao = new DataProcessDao();
		dataProcessDao.setDb(mongoManager.getDB());
		return dataProcessDao;
	}
}

 시간 이 촉박 하여 스스로 정리 하지 못 했다
 
 
그 다음 에 spring 관 리 를 통 해 MongoUtil 은 하나의 사례 가 applicationContext 에 존재 하 는 것 을 보증 합 니 다.mongo 는 한 번 만 만 만 들 고 웹 응용 서비스 가 중단 되 었 을 때 닫 습 니 다.
 
         
 
그리고 필요 한 업무 논리 류 에 MongoUtil 을 주입 하여 사용 하면 됩 니 다.
public class OperateServiceImpl implements IOperateService {
	private static MongoUtil mongoUtil;
	private static DataProcessDao dataProcessDao;

        public MongoUtil getMongoUtil() {
		return mongoUtil;
	}

	public void setMongoUtil(MongoUtil mongoUtil) {
		this.mongoUtil = mongoUtil;
	}

        //      
        public Message deleteById(String id) {
                //   dataProcessDao             、  mongo     db    
                dataProcessDao = mongoUtil.getDataProcessDao();
                //          
	        dataProcessDao.removeByFileName(id);
}

 설정 파일 을 통 해 MongoUtil 을 비 즈 니스 논리 클래스 에 주입 하면 됩 니 다.
 
                                     
 
이 때 웹 서 비 스 는 몇 개의 연결 수 만 차지 합 니 다.웹 응용 프로그램의 시작 과 종료 에 따라 방출 됩 니 다.

좋은 웹페이지 즐겨찾기