java - ServiceRegistry 构建 session 工厂的作用?

标签 java hibernate orm configuration sessionfactory

当我在 Hibernate 4.3 中使用以下推荐方式创建 session 工厂时,

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 中指定的配置属性。 session 工厂对于一个应用程序来说是单一的(如果应用程序必须连接一个数据库)并用于创建 session 。

但是我无法理解这个服务注册表在创建 session 工厂时做了什么,为什么从 hibernate 4.3 开始使用标准服务注册表生成器?这个类的实际用途是什么以及为什么用它来创建Session Factory?服务注册表中讨论了哪些服务?

最佳答案

ServiceRegistry 允许 Hibernate 初始化服务,例如:

  • JTA 事务协调员
  • 缓存服务
  • JMX 提供商

ServiceRegistry 的作用是提供一种灵活的方式来引导 Hibernate 服务。一些应用程序使用编程方式创建 SessionFactory,而其他环境则通过外部机制(例如 OSGI)引导服务。

关于java - ServiceRegistry 构建 session 工厂的作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32152289/

相关文章:

node.js - 在 Sails.JS 中持久化之前添加缺少的请求参数

java - 运行时异常 : Uncompilable source code - cannot find symbol

java - 使用 JTransform 方法 realInverse 取回原始信号

java - Java中的未知编译器错误,我认为这是一个范围问题

java - hibernate : How to prevent SQL injection when the collection elements needs to check with `like` operator?

java - 我可以将 saveOrUpdate 方法与 DynamicUpdate 注释一起使用吗?

java - 如何在android中将TCP套接字从一个Activity发送到另一个Activity?

java - 如何使 @ManyToOne 实体成为 hibernate 中类的 ID

java - JPA:通过接口(interface)查找而不是实现

java - 我使用 Hibernate 创建了一个基本的 CRUD GUI,但我得到 "index out of bound exception"。可能是什么问题呢?