我知道如何使用Hibernate来配置Spring。Spring如何与Hibernate集成
但我的问题是如何整合春季和休眠以及它是如何工作的。
下面是我用来创建Spring + Hibernate应用程序的代码。
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
</bean>
这SessionFactory的bean是在Java代码注入,
import org.hibernate.SessionFactory;
public class DAOSupport extends HibernateDaoSupport {
@Autowired
public void createSessionFactory(SessionFactory sessionFactory) {
setSessionFactory(sessionFactory);
}
正如你可以看到,我用与弹簧组件相关的创建会话工厂,但在代码中是使用Hibernate包。
PS:我知道HibernateDaoSupport已被弃用,这只是为了解这两个框架是如何工作的。
感谢Gimby的链接。 JavaDoc
有一个区别,Spring类是一个工厂,它创建了Hibernate类的实例。 – Tobb
Spring被用作IoC,它在Hibernate中注入SessionFactory,如你所示,有一个由Spring上下文创建的sessionFactory,而不是你自己。 – mlewandowski
@mlewandowski:但那个sessionFactory属于spring包。 – Lathy