LocalSessionFactoryBean 本身不是一个session factory,但是spring会自动把对这个bean的引用替换成LocalSessionFactoryBean 里面的真正的session factory。
具体解释一下:
在LocalSessionFactoryBean 这个class里面有个字段是存放真正的session factory的:
Java代码:
public class LocalSessionFactoryBean implements FactoryBean, InitializingBean, DisposableBean {
private SessionFactory sessionFactory;
public Object getObject(); {
return this.sessionFactory;
}
当引用这个LocalSessionFactoryBean 的时候,比如applicationContext.getBean("localSessionFactoryBean ")这样,spring返回的不是LocalSessionFactoryBean 本身,他会自动调用getObject()这个方法,把真正的session factory返回。用<ref bean="">这样引用也一样,得到的都是session factory而不是LocalSessionFactoryBean
。这里代码没贴全,有兴趣的话去看看源代码。
所以不需要再显式地创建一个session factory,直接引用LocalSessionFactoryBean 就可以了。
转正:http://hi.baidu.com/birdnic/blog/item/6cadc0399183f5f43b87ce6d.html
分享到:
相关推荐
Class'org.springframework.orm.hibernate3.LocalSessionFactoryBean'not found 解决办法
applicationContext-db.xml中配置的是关于数据库的文件。 文件中的数据库名字为ssh2,如果你想修改成为你自己的数据库名,只需将该文件中16行DatabaseName对应的值改下就ok了! 2.执行com.ssh2.utile包下的Create...
继续在 LocalSessionFactoryBean 中配置,使用hibernateProperties属性继续来配置其他的属性,注意值是properties属性文件
spring整合hibernate过程中,spring中使用的.jar必备包。LocalSessionFactoryBean等类的都可在包中引用
配置org.apache.commons.dbcp.BasicDataSource, spring要整合hibernate,需要用到一个关键类LocalSessionFactoryBean.配置如下
spring-hibernate3.jar包,直接导入路径即可,解决Class 'org.springframework.orm.hibernate3.LocalSessionFactoryBean' not found这个错误
spring和hibernate需要的jar,直接导入项目中就可以,解决Class 'org.springframework.orm.hibernate3.LocalSessionFactoryBean' not found和BasicDataSource not found错误
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> org.hibernate.dialect.Oracle9Dialect <prop key="hibernate.show_sql">true ...
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <value>classpath:hibernate.cfg.xml </property> </bean> --> class="org.apache.commons....