hibernate 的SessionFactory的实现

来源:互联网 发布:淘宝差评后还能追评吗 编辑:程序博客网 时间:2024/05/19 16:51

老版本 是这么 实现的


加载 配置文件  hibernate.cfg.xml:

public Configuration configure() throws HibernateException {
configure( "/hibernate.cfg.xml" );
return this;
}


SessionFactory sf = new AnnotationConfiguration().configure().buildSessionFactory(); 


新版本 是 

Hibernate4新增了一个接口ServiceRegistry,

所有基于Hibernate的配置或者服务都必须统一向这个ServiceRegistry注册后才能生效。

所以不难看出 Hibernate4的配置入口不再是Configuration对象,而是ServiceRegistry对象,Configuration对象将通过ServiceRegistry对象获取配置信息。

使用了Builder模式创建一个ServiceRegistry对象,可以看到源码org.hibernate.service.ServiceRegistryBuilder这个类。

具体获取如下:

复制代码
 1 import org.hibernate.HibernateException; 2 import org.hibernate.SessionFactory; 3 import org.hibernate.cfg.Configuration; 4 import org.hibernate.service.ServiceRegistry; 5 import org.hibernate.service.ServiceRegistryBuilder; 6  7 public class Test { 8  9     private static Configuration configuration = null;10     private static SessionFactory sessionFactory = null;11     private static ServiceRegistry serviceRegistry = null;12     public static void main(String[] args) {13         try {14             configuration = new Configuration().configure();15             serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();16             sessionFactory = configuration.buildSessionFactory(serviceRegistry);17         } catch (HibernateException e) {18             e.printStackTrace();19         }20     }21 22 }



0 0
原创粉丝点击