Spring与Hibernate整合中,通过配置LocalSessionFactoryBean来得到SessionFactory

本文介绍了在Spring与Hibernate整合时,如何通过LocalSessionFactoryBean获取SessionFactory。由于SessionFactoryImpl没有注入数据源的setter方法,Spring提供了LocalSessionFactoryBean来实现依赖注入。LocalSessionFactoryBean实现了FactoryBean接口,Spring会在装配时调用其getObject()方法返回SessionFactory。若要获取LocalSessionFactoryBean实例,可在配置文件中使用'&'前缀。
摘要由CSDN通过智能技术生成

学习Spring的过程中,一直不理解为何需要用LocalSessionFactoryBean来得到SessionFactory,LocalSessionFactoryBean 本身不是一个session factory,但是spring会自动把对这个bean的引用替换成LocalSessionFactoryBean 里面的真正的session factory。

Hibernate提供的SessionFactory接口的实现类SessionFactoryImpl没有注入数据源的setter方法(上面的代码是直接把hibernate配置文件注入给了LocalSessionFactoryBean,也可以把一个数据源dataSource注入给它)所以为了完成spring的依赖注入,Spring提供了LocalSessionFactoryBean这个类.
现在我们有个这样的问题:

我们想要一个org.hibernate.SessionFactory类.而我们在Spring容器中确是一个LocalSessionFactoryBean类。

    publicclass LocalSessionFactoryBean implements FactoryBean, InitializingBean, DisposableBean {   
      
        private SessionFactory sessionFactory;   
      
        public Object getObject(); {   
            returnthis.sessionFactory;   
         }  
当引用这个 LocalSessionFactoryBean 的时候,比如applicationContext.g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值