当我在 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/