知识大全 Hibernate的JNDI名称绑定分析

Posted

篇首语:宿命论是那些缺乏意志力的弱者的借口。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate的JNDI名称绑定分析相关的知识,希望对你有一定的参考价值。

Hibernate的JNDI名称绑定分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  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()

cha138/Article/program/Java/ky/201311/28050

相关参考

知识大全 利用ThreadLocal绑定Hibernate的session

利用ThreadLocal绑定Hibernate的session  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Hibernate基础详细分析

Hibernate基础详细分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hibernate

知识大全 数据绑定以及Container.DataItem几种方式与用法分析

数据绑定以及Container.DataItem几种方式与用法分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 分析Hibernate的事务处理机制

分析Hibernate的事务处理机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hibern

知识大全 怎样利用Hibernate开发Blog实例分析

怎样利用Hibernate开发Blog实例分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  开

知识大全 Hibernate中po对象的三种状态分析

Hibernate中po对象的三种状态分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hib

知识大全 JNDI Connection 池化

JNDIConnection池化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JNDI(Jav

知识大全 Hibernate与IBatis的优缺点及可行性分析

Hibernate与IBatis的优缺点及可行性分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Tomcat5.5下的Jndi的配置实例

Tomcat5.5下的Jndi的配置实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JNDI

知识大全 基于JNDI的应用开发

java高级编程:基于JNDI的应用开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  基于JN