这些年一直都在作Mybatis的开发,几乎都忘记了Hibernate的开发,如今从新学习一下,下载最新的Hibernate 正式版Hibernate.4.2.2.Final。java
若是你是用maven的话就是session
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.2.Final</version> </dependency>
发现Hibernate4已经将configuration的buildSessionFactory方法已经划线了,说明已通过时了。app
后来参看hibernate源码。以及API帮助文档,发现Hibernate4新增了一个接口ServiceRegistry,maven
全部基于Hibernate的配置或者服务都必须统一贯这个ServiceRegistry注册后才能生效。学习
因此不难看出 Hibernate4的配置入口再也不是Configuration对象,而是ServiceRegistry对象,Configuration对象将经过ServiceRegistry对象获取配置信息。ui
使用了Builder模式建立一个ServiceRegistry对象,能够看到源码org.hibernate.service.ServiceRegistryBuilder这个类。spa
具体获取以下:hibernate
import org.hibernate.HibernateException; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; public class Test { private static Configuration configuration = null; private static SessionFactory sessionFactory = null; private static ServiceRegistry serviceRegistry = null; public static void main(String[] args) { try { configuration = new Configuration().configure(); serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } catch (HibernateException e) { e.printStackTrace(); } } }