spring 事务管理

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事务管理器。

你可能感兴趣的:(spring 事务)