spring 事务管理
程序员文章站
2022-06-11 08:22:34
...
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的事务管理器,那么就要用到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事务管理器。