一、在spring与Hibernate的整合中,配置文件主要都集中在了spring的配置文件里,来看一个例子。applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!-- - Application context definition for "spring" DispatcherServlet. -->
<beans>
<!--这最开始的部分是Hibernate与数据库进行连接并进行表的绑定 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>COM.ibm.db2.jdbc.app.DB2Driver</value></property>
<property name="url"><value>jdbc:db2:SCM_DEV</value></property>
<property name="username"><value>retop</value></property>
<property name="password"><value>retop117</value></property>
</bean>
<!-- Hibernate SessionFactory for HSQL -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="dataSource"><ref local="dataSource"/></property>
<property name="mappingResources">
<list>
<value>com/sscm/test/domain/Group.hbm.xml</value>
<value>com/sscm/test/domain/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">net.sf.hibernate.dialect.DB2Dialec</prop>
<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.Provider</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.show_sql">false</prop>
<!--<prop key="hibernate.hbm2ddl.auto">update</prop>-->
</props>
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA)控制事务部分-->
<bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<!--这部分应该是spring与Hibernate进行数据交互的部分 -->
<!--这里调用的原理是用Spring的HibernateTemplate,用自己写的封装类来代替-->
<!-- Persistence manager 用于save方法类-->
<bean id="persistenceManager" class="com.sscm.core.persistence.impl.HibernatePersistenceManager">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<!-- Query manager 用于query方法类-->
<bean id="queryManager" class="com.sscm.core.persistence.impl.HibernateQueryManager">
<property name="sessionFactory"><ref local="sessionFactory"/></property>
</bean>
<!-- Service target-->
<bean id="testServiceTarget" class="com.sscm.test.service.impl.DefTestService" autowire="byName" />
<bean id="testService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref local="transactionManager"/></property>
<property name="target"><ref local="testServiceTarget"/></property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="manageGroupAction" class="com.sscm.test.web.ManageGroupAction" autowire="byName" />
<bean id="groupAction" class="com.sscm.test.web.GroupAction" autowire="byName" />
<bean id="usersOfGroupAction" class="com.sscm.test.web.UsersOfGroupAction" autowire="byName" />
<bean id="userAction" class="com.sscm.test.web.UserAction" autowire="byName" />
</beans>