Hibernate 가 Session Factory 대상 을 만 드 는 것 에 대한 설명

1. hibenate 관련 jar 가방 불 러 오기 (maven 을 통 해)
  1. maven 을 통 해 jar 패 키 지 를 관리 합 니 다. 다음 사이트 주 소 를 통 해 원 하 는 maven 의 좌 표를 검색 할 수 있 습 니 다.
        http://mvnrepository.com/
       hiberante 를 불 러 오 는 좌표 는
         
	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.2.3.Final</version>
		</dependency>
	</dependencies>

 2. SessionFactory 대상 획득
    1. 4.0 버 전에 이 대상 을 가 져 오 는 방법 은:
        기본적으로 Hibernate 는 classPath 에 hibernate. cfg. xml 파일 을 불 러 옵 니 다. 기본 설정 파일 이름 을 사용 하지 않 으 면 configurate () 방법 에 가 져 가 야 합 니 다.     temp. xml 와 같은 프로필 이름 입 니 다.경로 가 정확 합 니 다.
                Configuration configuration = new Configuration().configure();
		SessionFactory sessionFactory = configuration.buildSessionFactory();
 
  2. Hibernate 4.0 이후 도 입 된 새로운 특성, Service Register 메커니즘.그 설정 상황 은 다음 과 같다.
   StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();  
   ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();  
   SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);

         
그러나 4.1 이후 버 전에 서 는 Standard Service Registry Builder 가 취소 되 었 다.
        Configuration configiguration = new Configuration().configure();  
        ServiceRegistryBuilder builder = new ServiceRegistryBuilder().applySettings(configiguration.getProperties());  
        ServiceRegistry registry = builder.buildServiceRegistry();   
        factory = configiguration.buildSessionFactory(registry);

  3. 서비스 등록 메커니즘
   1. ServiceRegistry 는 Service 의 등록 표 로 Service 에 통 일 된 로드 / 초기 화 / 저장 / 가 져 오기 체 제 를 제공 합 니 다. 
       우선 전체 유 도 를 보십시오.
   전체 ServiceRegistry 구 조 는 우리 가 알 고 있 는 Classloader 의 대리 구조 와 유사 합 니 다. 다만 Classloader 의 먼저 부모 노드 를 대리 할 뿐 부모 노드 는 본 급 Classloader 에서 찾 을 수 있 는 방법 을 찾 을 수 없습니다.    약간 다 르 지만 ServiceRegistry 는 먼저 본급 노드 에서 찾 고 찾 지 못 하면 아버지 에 게 가서 찾 습 니 다.
hibenate 안의 serviceRegistry 는 실제 적 으로 3 층 (범위) 으로 구 성 된 것 을 볼 수 있다.[주로 Bootstrap 서비스 레 지 스 트 리 에 포 함 된 Hibernate 와 관련 된 서비스, 예 를 들 어 프로필 분석, JDBC, JNDI 등] 표준 적 인 ServiceRegistry 는 전체 에 똑 같이 서 비 스 를 제공 합 니 다. 이 레 지 스 트 리 의 서 비 스 를 초기 화 할 때 Bootstrap 서비스 레 지 스 트 리 의 서 비 스 를 사용 해 야 할 수도 있 습 니 다.[sessionfactory 와 관련 된 것 입 니 다. 2LC 의 region factory, event listener 등 을 포함 합 니 다.]
Session Factory 와 연 결 된 (일대일 관계) 이 안의 서 비 스 는 초기 화 할 때 Session Factory 를 방문 해 야 합 니 다.
이 안의 등급 관 계 는 service registry 의 client 에 있어 서 완전히 투명 합 니 다. getService 를 직접 호출 하여 필요 한 서 비 스 를 얻 을 수 있 습 니 다. 어떤 등급 에 있 는 지 신경 쓰 지 않 아 도 됩 니 다. 예 를 들 어 classloader 와 같 습 니 다.
 4. Hibernate 에서 얻 은 서 비 스 는 무엇 을 포함 합 니까?
Service 는 하나의 인터페이스 (Service Role) 와 하나의 실현 클래스 로 구 성 된 기능 입 니 다. Service 는 이번 새 버 전에 서 이러한 서비스의 제공 자 (클래스) 를 하나의 Service 로 추출 하여 통 일 된 방식 으로 접근 / 로드 / 초기 화 등 을 할 수 있 습 니 다. 아래 그림 은 모든 Hibernate 에 내 장 된 Services 를 보 여 줍 니 다. 상세 한 소 개 는 참고 하 시기 바 랍 니 다.
원문:http://planet.jboss.org/post/hibernate_orm_service_registry

좋은 웹페이지 즐겨찾기