問:
org.springframework.orm.hibernate3.LocalSessionFactoryBean;
這個類型根本沒有getCurrentSession的方法。
而productDAO中的sessionFactory是org.hibernate.SessionFactory,這中間的類型是怎么轉換的啊?
試了一下往數據庫保存是成功的,就是想不通這個類型的轉換,我看LocalSessionFactoryBean也沒有實現SessionFactory這個接口啊?
難道是LocalSessionFactoryBean的getObject()方法?
答:
正是如此!LocalSessionFactoryBean實現了org.springframework.beans.factory.FactoryBean接口, spring在裝配的時候, 如果發現實現了org.springframework.beans.factory.FactoryBean接口, 就會使用FactoryBean#getObject() 方法返回的對象裝配,具體的可以看下文檔.
如果你想拿到LocalSessionFactoryBean實例, 在id前面加個'&'就可以了,在你的配置文件中BeanFactory.getBean('&sessionFactory')拿到的就是LocalSessionFactoryBean的實例.
出處:http://www.javaeye.com/problems/4189