Hibernate SessionFactory 如何使用 LocalSessionFactoryBean 自动装配?

How Hibernate SessionFactory autowired using LocalSessionFactoryBean?

自动装配正在完美进行,一切正常。 但是我需要知道如何使用 LocalSessionFactoryBeanHibernateTransactionManager 中注入会话工厂 LocalSessionFactoryBean class 和 SessionFactory 接口之间没有关系。

PFB 我在项目中使用的代码

<beans:bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <beans:property name="sessionFactory"
            ref="localSessionFactoryBean" />
    </beans:bean>
<beans:bean id="localSessionFactoryBean"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <beans:property name="dataSource" ref="dataSource" />
                <beans:property name="hibernateProperties">
            <beans:props>
                <beans:prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect
                </beans:prop>
                <beans:prop key="hibernate.show_sql">true</beans:prop>
            </beans:props>
        </beans:property>
    </beans:bean>

在上面的代码中,我在 HibernateTransactionManager 中为 sessionFactory 注入了 LocalSessionFactoryBean

请详细解释如何使用注释驱动在 HibernateTransactionManager 中从 LocalSessionFactoryBean 初始化 sessionFactory

LocalSessionFactoryBean 实施 FactoryBean<SessionFactory>。因此,当 Spring 将 sessionFactory 设置为 HibernateTransactionManager 时,它会调用 LocalSessionFactoryBeangetObject() 方法并获取 SessionFactory.

public class LocalSessionFactoryBean extends HibernateExceptionTranslator
        implements FactoryBean<SessionFactory> {

    public SessionFactory getObject() {
        return this.sessionFactory;
    }

}

What's a FactoryBean?