Service Registry 构建会话工厂的作用?
Role of Service Registry to build a session factory?
虽然我在 Hibernate 4.3 中使用以下推荐方式创建会话工厂,
Configuration configuration = new Configuration().configure(CONFIGURATION_LOCATION);
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
我试图通过阅读 Hibernate 文档来了解上面的代码是如何工作的,
Configuration 对象用于指定我们在 hibernate.cfg.xml 中指定的配置属性。
会话工厂对于一个应用程序是单一的(以防应用程序必须连接一个数据库)并用于创建会话。
但我不明白这个服务注册表在创建会话工厂时做了什么,为什么从 hibernate 4.3 开始使用标准服务注册表生成器?这个 class 的实际用途是什么,为什么要用它来创建会话工厂? Service Registry 中讨论了哪些服务?
ServiceRegistry
允许 Hibernate 初始化服务,例如:
- JTA 事务协调器
- 缓存服务
- JMX 提供商
ServiceRegistry
的作用是提供一种灵活的方式 bootstrapping Hibernate 服务。一些应用程序使用编程方式创建 SessionFactory,而其他环境 bootstrap 通过外部机制(如 OSGI)提供服务。
服务和注册表是从 4.0 开始的新概念。
服务以可插入的方式提供各种类型的功能。例如,Hibernate 需要能够访问 JDBC 数据库连接。它获取和释放这些Connections的方式是通过ConnectionProvider服务。
ServiceRegistry 最基本的功能是托管和管理服务。服务有范围,它可能依赖于其他服务。并且需要生成它们(选择使用一种实现而不是另一种实现)。 ServiceRegistry 满足所有这些 needs.In 简洁的定义,ServiceRegistry 充当 inversion-of-control (IoC) 容器,管理服务、它们的生命周期和依赖项。
以上几点参考了下面的link,详情请访问,对进一步理清概念很有帮助
https://docs.jboss.org/hibernate/orm/5.0/topical/html/registries/ServiceRegistries.html
虽然我在 Hibernate 4.3 中使用以下推荐方式创建会话工厂,
Configuration configuration = new Configuration().configure(CONFIGURATION_LOCATION);
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
我试图通过阅读 Hibernate 文档来了解上面的代码是如何工作的, Configuration 对象用于指定我们在 hibernate.cfg.xml 中指定的配置属性。 会话工厂对于一个应用程序是单一的(以防应用程序必须连接一个数据库)并用于创建会话。
但我不明白这个服务注册表在创建会话工厂时做了什么,为什么从 hibernate 4.3 开始使用标准服务注册表生成器?这个 class 的实际用途是什么,为什么要用它来创建会话工厂? Service Registry 中讨论了哪些服务?
ServiceRegistry
允许 Hibernate 初始化服务,例如:
- JTA 事务协调器
- 缓存服务
- JMX 提供商
ServiceRegistry
的作用是提供一种灵活的方式 bootstrapping Hibernate 服务。一些应用程序使用编程方式创建 SessionFactory,而其他环境 bootstrap 通过外部机制(如 OSGI)提供服务。
服务和注册表是从 4.0 开始的新概念。
服务以可插入的方式提供各种类型的功能。例如,Hibernate 需要能够访问 JDBC 数据库连接。它获取和释放这些Connections的方式是通过ConnectionProvider服务。
ServiceRegistry 最基本的功能是托管和管理服务。服务有范围,它可能依赖于其他服务。并且需要生成它们(选择使用一种实现而不是另一种实现)。 ServiceRegistry 满足所有这些 needs.In 简洁的定义,ServiceRegistry 充当 inversion-of-control (IoC) 容器,管理服务、它们的生命周期和依赖项。
以上几点参考了下面的link,详情请访问,对进一步理清概念很有帮助
https://docs.jboss.org/hibernate/orm/5.0/topical/html/registries/ServiceRegistries.html