2017-10-24 9 views
1

최대 절전 모드를 사용하여 maven 애플리케이션을 개발 중이다.세션 팩토리 생성에 처음로드하는 데 많은 시간이 걸린다.

처음으로 응용 프로그램을로드하는 동안 세션 팩토리를로드하는 데 많은 시간이 걸리지 만 (약 3-4 분), 후속 세션 팩토리가 즉시 생성됩니다. 시간 지연을 줄이기 위해 내가해야 할 변화가 무엇인지 알아낼 수 있습니까?

package com.infosys.common.util; 

import java.util.logging.Logger; 

import org.hibernate.SessionFactory; 
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 

/*import org.hibernate.SessionFactory; 
import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry;*/ 

// TODO: Auto-generated Javadoc 
/** 
* The Class HibernateUtilities. 
*/ 
public class HibernateUtilities { 

    /** The Constant CONFIGURATION_LOCATION. */ 
    private static final String CONFIGURATION_LOCATION = "com/infosys/common/util/hibernate.cfg.xml"; 
    private static final Logger LOGGER = Logger.getLogger(HibernateUtilities.class.getName()); 

    /** The session factory. */ 
    private static SessionFactory sessionFactory = null; 

    /** The service registry. */ 
    private static ServiceRegistry serviceRegistry; 

    /** 
    * Gets the session factory. 
    * 
    * @return the session factory 
    */ 
    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 

    /** 
    * Creates the session factory. 
    * 
    * @return the session factory 
    * @throws Exception 
    *    the exception 
    */ 
    public synchronized static SessionFactory createSessionFactory() throws Exception { 
     if (sessionFactory == null) 
     { 
      try { 
       LOGGER.info("Logger Name: " + LOGGER.getName()); 

       // Step1 : Loading the configuration details from 
       // hibernate.cfg.xml 

       Configuration configuration = new Configuration().configure(CONFIGURATION_LOCATION); 
       configuration. 
      setProperty("hibernate.temp.use_jdbc_metadata_defaults","false"); 

       // Step2 : Creating ServiceRegistry using the 
       // StandardServiceRegistryBuilder and Configuration defined in 
       // Step 1 
       serviceRegistry = new StandardServiceRegistryBuilder().configure(CONFIGURATION_LOCATION).build(); 

       // Step3 : Creating the SessionFactory using the Configuration 
       // and serviceRegistry. 
       sessionFactory = configuration.buildSessionFactory(serviceRegistry); 

      } catch (Exception e) { 
       throw e; 
      } 
     } 
     return sessionFactory; 
    } 

    /** 
    * Close session factory. 
    */ 
    public static void closeSessionFactory() 
    { 
     if(sessionFactory!=null) 
     { 
      sessionFactory.close(); 
     } 
    } 
} 

답변

0

이 아주 정상입니다 : 여기

는 최대 절전 모드 유틸리티 파일입니다. 처음으로 최대 절전 모드를 구성하고 세션 팩토리를 사용할 때 (즉, 프로그램을 실행할 때), 최대 절전 모드 설정, 모든 POJO 파일 & 맵 파일, 맵, POJO 및 데이터베이스가 일치하는지 확인해야합니다. 따라서 첫 번째 실행에는 항상 시간이 걸립니다.

+0

매우 적은 시간이 소요되는 동일한 최대 절전 모드 방법을 사용하는 다른 프로그램을 보았습니다. 내 코드에서 할 수있는 변경 사항이 있습니까 ?? –

+0

로컬 네트워크에 데이터베이스가 있습니까? 나쁜 네트워크 연결로 인해 지연된 시작이 발생할 수 있습니다. –

+0

우리 팀은 우리 회사 네트워크에서 MySQL Workbench를 사용하고 있습니다. –