Hibernate SessionFactory 如何使用 LocalSessionFactoryBean 自动装配?
How Hibernate SessionFactory autowired using LocalSessionFactoryBean?
自动装配正在完美进行,一切正常。
但是我需要知道如何使用 LocalSessionFactoryBean
在 HibernateTransactionManager
中注入会话工厂
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
时,它会调用 LocalSessionFactoryBean
的 getObject()
方法并获取 SessionFactory
.
public class LocalSessionFactoryBean extends HibernateExceptionTranslator
implements FactoryBean<SessionFactory> {
public SessionFactory getObject() {
return this.sessionFactory;
}
}
自动装配正在完美进行,一切正常。
但是我需要知道如何使用 LocalSessionFactoryBean
在 HibernateTransactionManager
中注入会话工厂
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
时,它会调用 LocalSessionFactoryBean
的 getObject()
方法并获取 SessionFactory
.
public class LocalSessionFactoryBean extends HibernateExceptionTranslator
implements FactoryBean<SessionFactory> {
public SessionFactory getObject() {
return this.sessionFactory;
}
}