StandardServiceRegistry在Hibernate 4中的重要性是什么?

时间:2014-05-31 21:01:55

标签: java hibernate

从Hibernate 4开始,Configuration.buildSessionFactory()Configuration.buildSessionFactory(ServiceRegistry)取代。所以我们必须像这样创建会话工厂:

private static SessionFactory sessionFactory = null;
private static StandardServiceRegistry reg;

private static final String TAG = new String("HIBERNATE_UTIL: ");

public HibernateUtil() {

    try {
        Configuration cfg = new Configuration().configure("/com/dorm/service/hibernate.cfg.xml");
        StandardServiceRegistryBuilder reg_builder = new StandardServiceRegistryBuilder();
        reg_builder.applySettings(cfg.getProperties());
        reg = reg_builder.build();

        sessionFactory = cfg.buildSessionFactory(reg);
        System.out.println(TAG+"Session Factory created");

    }catch(HibernateException he) {
        System.out.println(TAG+"Error in creating Session Factory");
        he.printStackTrace();
    }
}

我想知道,

StandardServiceRegistry做了什么?

StandardServiceRegistry方法中传递configuration.buildSessionFactory()的对象的重要性是什么?

提前感谢您的回答。

编辑:我已经提到了hibernate的javadocs,但无法理解这个概念。

1 个答案:

答案 0 :(得分:1)

Hibernate 4现在有一个用于注册内部服务的插件机制(连接提供程序,事务管理)。

因此,您可以自定义如何检索服务(例如OSGI),因此使用此选项可以最大限度地提高会话工厂的可定制性。