2.4.2 JNDI绑定的SessionFactory

本文探讨了在Hibernate程序中如何使用SessionFactory,并介绍了将其与JNDI绑定的方法。此外,还提供了具体的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在大多数的Hibernate程序中,SessionFactory只是在程序初始化的时候被初始化一次。这个单实例的SessionFactory对象被用来创建在程序中使用的Session。一个经常争论的问题就是sessionFactory应该被放在什么位置,以及如何去访问sessionfactory。

在J2EE环境下,将SessionFactory与JNDI绑定在一起,这样可以更容易在线程之间以及Hibernate组件之间共享。当然,JNDI并不是唯一能够取得SessionFactory的途径。有许多其他方式可以得到同样的目的,例如使用ServletContext或者单实例的静态常量。一个比较特殊的方法是使用支持控制反转(IOC)的框架。但是,JNDI仍然是一种流行的方式。我们将在第8章讨论一些其他可能的方式。

如果在hibernate.session_factory_name属性设定为目录节点的名字的时候,SessionFactory会自动绑定到JNDI。如果运行环境没有提供一个默认的JNDI上下文空间,你需要通过hibernate.jndi.url和hibernate.jndi.class指定初始的命名空间。

在这里有一个Hibernate配置的例子,通过Sun免费的文件系统fscontext.jar把SessionFactory绑定到hibernate/HibernateFactory上面。

image 

当然,你可以使用XML文件来完成这个任务。当然这个例子并不是真实的例子,绝大多数的应用服务器都会通过JNDI提供连接池,同时也提供一个默认的可写的JNDI实现。JBoss当然也有,所以你可以略过最后的两个属性。现在你需要做的就是调用Configuration.configure().buildSessionFactory()去初始化绑定。

让我们来看一下其他一些重要的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值