当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

Hibernate的JNDI绑定解析[Java编程]

赞助商链接



  本文“Hibernate的JNDI绑定解析[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Hibernate的JNDI名称绑定是在net.sf.hibernate.impl.SessionFactoryObjectFactory程序里面实现的,我来解析一下Hibernate的绑定JNDI的历程:

我们得到SessionFactory普通是这样写代码:

Configuration conf = new Configuration().addClass(Cat.class);
SessionFactory sf = conf.buildSessionFactory();

首先是new Configuration()成立一个Configuration,在这个构造器里面举行配置文件(hibernate.properties)的读取工作,然后保存到一个Properties对象里面去,和JNDI相关的是这个属性:

hibernate.session_factory_name hibernate/session_factory

接着调用buildSessionFactory()办法,该办法查抄一下配置信息,然后调用SessionFactoryImpl的一个构造器.在构造器里面注意下面两行代码:

name = properties.getProperty(Environment.SESSION_FACTORY_NAME);
SessionFactoryObjectFactory.addInstance(uuid, name, this, properties);

调用了SessionFactoryObjectFactory的addInstance办法,并且把自身(SessionFactory的实例)作为参数传送.最后在addInstance办法可以看到以下代码:

Context ctx = NamingHelper.getInitialContext(properties);
NamingHelper.bind(ctx, name, instance);

instance 就是SessionFactory的实例,通过读源代码,可以清楚的看到Hibernate是在conf.buildSessionFactory()的时刻通过一系列类办法调用,把成立的SessionFactory实例绑定到配置文件(hibernate.properties)中 hibernate.session_factory_name属性指定的名称上的,因此可见Hibernate自身是具有JNDI的动态绑定功效的.但是Hibernate需求得到一个SessionFactory实例用于绑定,而这个SessionFactory实例需求我们写代码举行预先成立,并且必须保证该历程要在全部别的要从JNDI上得到SessionFactory实例的程序之前完成.

因此关于任何App Server来说,我们都没必要去管JNDI名称的绑定历程,只需求保证预先成立一个SessionFactory实例出来就够了,剩下的工作 Hibernate会做的.那么若何确保预成立SessionFactory实例呢,假如是Servlet,可以配置一个初始化的Servlet,只要把

Configuration conf = new Configuration().addClass(Cat.class);
SessionFactory sf = conf.buildSessionFactory();

这样的代码加进去便可以了.假如是包含EJB的的复杂的J2EE利用,大概需求依靠App Server的功效来保证预成立SessionFactory实例.


  以上是“Hibernate的JNDI绑定解析[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 在Hibernate里面动态切换SChema实现访谒差别的数据库的几种办法
  • Hibernate 3新增XML关系长期性介绍
  • Hibernate配置文件在单元测试中的操纵
  • 在Hibernate中动态切换Schema
  • hibernate annoation (八 关联映射)
  • hibernate annoation (九 cascading)
  • <b>hibernate annoation (十 映射查询)</b>
  • hibernate annoation(十一 缓存Ehcache 采纳annoation)
  • Hibernate:操作配置文件生成数据库
  • hibernate annoation (一 加载)
  • hibernate annoation (二 成立表)
  • <b>hibernate annoation (三 id生成器)</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .