SessionFactory在Hibnernate都需要通过单例模式来获取,但4.0与之前版本他们获取的方法有很大的不同之处。
4.0之前获取SessionFactory的方法相对非常简单,直接读取配置文件,再由读取配置文件的方法直接产生。具体代码如下:
Configuration cfg=new Configuration().configure();(ps:configure后面括号里面的内容可以去掉不写,但前提是需要在同一个src下面,并且指定的classpath路径必须相同否则就必须写)
SessionFactory sessionFactory=cfg.buildSessionFactory();
4.0之后获取SessionFactory的方法相对来说比较复杂,主要是hibernate增加了一注册机ServiceRegistryBuilder 类,获取SessionFactory的流程就发生了变化。首先也需要读取配置文件,然后新建一个注册机,需要生成的SessionFactory需要先经过注册机注册一下才能使用,注册完了之后才用读取配置文件的方法产生。具体代码如下:
Configuration cfg=new Configuration().configure();
ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
SessionFactory sessionFactory=cfg.buildSessionFactory(serviceRegistry);
总的来说就是在原来的两步之间加了一步注册,其他的没有什么不同。
本文详细对比了Hibernate SessionFactory在版本4.0前后的获取方式,从简单配置到引入注册机ServiceRegistryBuilder,阐述了两者之间的区别与实现流程。深入理解其演变过程,有助于开发者更高效地应用Hibernate进行持久化操作。
1201

被折叠的 条评论
为什么被折叠?



