你可以使用XML配置文件来配置SessionFactory。和Hibernate.properties不同,XML配置文件不仅仅包括配置参数,同时还包含映射文件。许多开发者也是选择集中来进行配置而不是在程序添加配置参数。
- document类型指定了XML文件验证使用的DTD文件。
- name属性和properties文件中的hibernate.session_factory_name属性相当,它被用来进行JNDI的绑定,我们将在下一节来讨论。
- 在指定属性的时候,不再需要使用hibernate前缀,只要保持属性名称和值保持唯一就好。
- 映射文档可以作为程序的资源文件来指定或者在程序中硬编码来指定。在这里使用的文件是我们在第三章使用的在线审计的程序。
那么现在你可以通过下面的语句初始化Hibernate了:
SessionFactory sessions=new Configuration().configure().buildSessionFactory();
等一下,Hibernate怎么知道配置文件在哪里呢?当configure()被调用的时候,Hibernate就会去寻找hibernate.cfg.xml的文件,如果你想使用不同的文件名的话,那么就需要将文件的路径传给configure()方法,
SessionFactory sessions=new Configuration().configure(“/hibernate-config/aution.cfg.xml”).buildSessionFactory();
使用xml配置文件比properties文件和程序硬编码更加令人舒服。你会发现对于映射文件来说,这种方法尤其具有优势。
如果你同时使用了Hibernate.cfg.xml和hibernate.properties的话,那么xml文件的配置将会覆盖properties文件的配置。这一点很有用处,你可以在properties文件保存一些基本配置,针对于不同的部署的时候,你可以重写那些xml的配置文件。
你可能会注意到在xml文件中SessionFactory被赋予了名字,Hibernate会自动使用这个名字和JNDI进行绑定。