从应用角度看Hibernate源码(三):Hibernate常用接口的实现

在Hibernate的源码包 org.hibernate.impl下的类,是Hibernate针对自我接口的重要实现。Hibernate所有重要接口的实现都放在了这里。这里面的最重要的接口大部分由Gavin King所实现。在这些接口中最重要的要数 SessionImpl 。这个类的源码如下
java 代码
  1. public final class SessionImpl extends AbstractSessionImpl    
  2.         implements EventSource, org.hibernate.classic.Session, JDBCContext.Context {   
  3. 。。。。。。   
  4. }  

 从这个类中我们可以看出很多的事情:

(1)首先作为Session的一个实现类,应该实现org.hibernate.Session.可接口中没有。打开org.hibernate.classic.Session发现继承了org.hibernate.Session。这样就有些明白了。但为什么不直接实现呢?通过看org.hibernate.classic.Session发现,这里面实现了很多Hibernate2的一些特性。从设计理念上来讲这样设计是非常的不错的。这个接口很明显是对Hibernate2的一个过渡,等大家都使用Hibernate3后,这个接口直接去掉即可。

 (2)打开EventSource,有件非常让人困惑的事情,这个类也实现了org.hibernate.Session。这个就有些不解了,首先对于这个SessionImpl来说是不解的。这里的结构显得不是很清晰。可能这个EventSource在别的地方也用到了,这里使用EventSource只是顺手牵羊。如果大家有更好的解释可以在下面接着回复。

(3)这里的Context接口主要是对Session的事务的接口。这个接口也有些不寻常的地方,它居然是另一个类的内部接口。而且是静态的接口,这里可能是为了实现事务的同步。不过,给人的感觉不是特清楚。

总之,在实现上感觉Hibernate这个类的实现有些问题。当然,这样做也许非常的精妙。对于这个类下面有时间会接着讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值