欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring 事务管理

程序员文章站 2022-06-11 08:25:22
...
http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/
对于事务的理解:
  我们用到spring的事务管理器,那么就要用到aop面向切面编程。首先在配置事务管理器的时候,我们先配置一下aop。aop配置有两种方式一种xml文件配置,一种是注解配置,我们这里说一下注解配置,其中aop代理有两种,一种是jdk动态代理,一种是cglib代理,默认的就是前一种,<aop:aspectj-autoproxy /> 或者proxy-target-class="true" 设置为true那么就会使用cglib代理了。然后我们再配置事务管理器, <tx:annotation-driven  transaction-manager="transactionManager" />开启事务注解,对于不同的数据源要配置不同的事务管理,如果数据源是jdbc配置那么就用datasourceTransactionManager事务管理器,如果是sessionFactory是hibernate配置那么就用hibernateTransactionManager事务管理器,如果是JPA那么就用jpaTransactionManager事务管理器。<bean id="jdbcManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"   p:dataSource-ref="dataSource"/>这是根据jdbc配置的spring配置事务管理。
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>:这里根据hibernate配置的spring事务管理。
<bean id="entityManagerFactory" 
  class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
  <property name="persistenceUnitName" value="testjpaPU" /> 
  <property name="jpaVendorAdapter"> 
   <bean 
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
    <property name="showSql" value="true"></property> 
    <property name="generateDdl" value="true"></property> 
   </bean> 
  </property> 
</bean> 
<bean id="transactionManager" 
  class="org.springframework.orm.jpa.JpaTransactionManager"> 
  <property name="entityManagerFactory" 
   ref="entityManagerFactory" /> 
</bean> :这是根据jpa配置的spring事务管理器。