spring配置事物四种方式

2017-05-01  本文已影响0人  小男人_cb75

第一种手动配置


Transaction transaction = session.beginTransaction();

session.update(target);

transaction.commit();

transaction.rollback();

session.close();


第二种spring.xml配置hibernateTemplate自动模式


<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> 

<property name="sessionFactory" ref="qq" /> </bean>


第三种注解事物


<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="qq"></bean>

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>//作用是注解事物

@Transactional  //类级的注解、适用于类中所有的public的方法

@Transactional(propagation = Propagation.NOT_SUPPORTED)不需要事务方法前加


第四种面向切面xml事物


<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="qq"></bean>

<aop:aspectj-autoproxy proxy-target-class="true" />//激活自动代理功能

<aop:config> //定义一个切面,并将事务通知和切面组合

<aop:pointcut expression="execution(* com.dao.impl.*.*(..))" id="trPointcut"/>

<aop:advisor advice-ref="trcut" pointcut-ref="trPointcut"/><

</aop:config>

<tx:advice id="trcut" transaction-manager="transactionManager"> //定义事务通知

<tx:attributes>

<tx:method name="add*" propagation="REQUIRED"/>//对增删该设置

<tx:method name="*" propagation="REQUIRED" read-only="true"/>//查询不用设置

<tx:method name="*" propagation="REQUIRED"/>//对所有方法设置

<tx:attributes>

<tx:advice>


上一篇下一篇

猜你喜欢

热点阅读