自动装配进行得很完美,并且一切正常。
但是我需要知道如何使用HibernateTransactionManager
在LocalSessionFactoryBean
中注入会话工厂LocalSessionFactoryBean
类和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>
在上面的代码中,我为
LocalSessionFactoryBean
中的sessionFactory
注入HibernateTransactionManager
。请详细解释如何使用注释驱动在
sessionFactory
中从HibernateTransactionManager
初始化LocalSessionFactoryBean
。 最佳答案
LocalSessionFactoryBean
实现FactoryBean<SessionFactory>
。因此,当Spring将sessionFactory
设置为HibernateTransactionManager
时,它将调用getObject()
的LocalSessionFactoryBean
方法并获取SessionFactory
。
public class LocalSessionFactoryBean extends HibernateExceptionTranslator
implements FactoryBean<SessionFactory> {
public SessionFactory getObject() {
return this.sessionFactory;
}
}
What's a FactoryBean?