1、 将hibernate纳入spring管理有两种,一种是引入hibernate配置文件,一种是将hibernate的配置内容交由spring。
*引入hibernate配置文件
<!-- 将hibernate的session纳入spring管理 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<!-- 指明hibernate配置文件 -->
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
*交由spring管理
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" value="dataSource"/>
<property name="mappingLocations">
<list>
<value>cn/sj/bean/GuestBook.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
<bean id="datasource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/ssh01">
</property>
<property name="username" value="root"></property>
<property name="password" value="fuck"></property>
</bean>
2、 配置事务管理器
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
3、 配置事务的传播特性
<!-- 配置事务的传播特性 -->
<tx:advice id="txadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
4、 利用切面技术,来指定相应的类、方法拥有事务特性
<!-- 利用切面技术,来指定相应的类、方法拥有事务特性 -->
<aop:config>
<!-- execution表达式用来指明cn.sj.manager.impl.类.方法(返回值情况) -->
<aop:pointcut id="allManagerMethod" expression="execution(* cn.sj.manager.impl.*.*(..))"/>
<!-- 将对上面的插入点配置事务传播特性 -->
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txadvice"/>
</