Java ServiceRegistry在创建SessionFactory中的用途是什么

Java ServiceRegistry在创建SessionFactory中的用途是什么,java,hibernate,sessionfactory,Java,Hibernate,Sessionfactory,我正在用Java学习Hibernate。 因为,要创建会话,我们必须使用SessionFactory.openSession(),要创建SessionFactory,我们使用SessionFactory=config.buildSessionFactory(serviceRegistry) 在hibernate中,ServiceRegistry有什么用途 创建会话工厂的我的代码: Configuration config = new Configuration(); config

我正在用Java学习Hibernate。 因为,要创建
会话
,我们必须使用
SessionFactory.openSession()
,要创建
SessionFactory
,我们使用
SessionFactory=config.buildSessionFactory(serviceRegistry)

在hibernate中,
ServiceRegistry
有什么用途

创建会话工厂的我的代码

Configuration config = new Configuration();
        config.addAnnotatedClass(user.class);
        config.addAnnotatedClass(emp.class);
        config.configure();

// Didn't understand the code below
            Properties configProperties = config.getProperties();
            ServiceRegistryBuilder serviceRegisteryBuilder = new ServiceRegistryBuilder();
            ServiceRegistry serviceRegistry = serviceRegisteryBuilder.applySettings(configProperties).buildServiceRegistry();
            SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);

请参阅Hibernate文档(第7章):

服务:服务是为Hibernate提供各种类型功能的可插拔实现的类。具体来说,它们是某些服务契约接口的实现


ServiceRegistry:除了服务本身之外,中央服务API是org.hibernate.service.ServiceRegistry接口。服务注册表的主要用途是保存、管理和提供对服务的访问。

服务注册表最基本的功能是承载和管理服务。其契约由org.hibernate.service.ServiceRegistry接口定义。 目前Hibernate使用3种不同的ServiceRegistry实现,形成一个层次结构

  • BootstrapServiceRegistry
  • 标准服务注册中心
  • SessionFactoryServiceRegistry org.hibernate.service.spi.SessionFactoryServiceRegistry是第三个标准hibernate ServiceRegistry。通常,其父注册表是StandardServiceRegistry。SessionFactoryServiceRegistry设计用于保存需要访问SessionFactory的服务。目前这仅仅是3项服务
EventListenerRegistry org.hibernate.event.service.spi.EventListenerRegistry是SessionFactoryServiceRegistry中管理的大型服务。这是管理和公开所有Hibernate事件侦听器的服务。集成商的一个主要用例是更改侦听器注册表

如果进行自定义侦听器注册,了解org.hibernate.event.service.spi.replicationstrategy及其对注册的影响很重要。基本思想是告诉Hibernate:

什么使侦听器成为重复的

如何处理重复注册(错误、第一次成功、最后一次成功)

统计实施者

org.hibernate.stat.spi.StatisticsImplementor是org.hibernate.Statistics API的spi部分。收集器部分,如果您愿意。

请参考以下内容:

除了服务本身之外,中央服务API是org.hibernate.service.ServiceRegistry接口。服务注册中心的主要用途是保存、管理和提供对服务的访问

服务注册中心是分层的。一个注册中心中的服务可以依赖并使用同一注册中心以及任何父注册中心中的服务

使用org.hibernate.service.ServiceRegistryBuilder构建org.hibernate.service.ServiceRegistry实例