Spring的事务管理-相关配置
事务管理:
事务就是一系列的动作,它们被当作一个单独的工作单元。这些动作要么全部完成,要么全部不起作用
Spring事务管理
Spring并不直接管理事务,而是提供了多种事务管理器,它们将事务管理的职责委托给JTA或其他持久化机制所提供的平台相关的事务实现。每个事务管理器都会充当某一特定平台的事务实现的门面,这使得用户在Spring中使用事务时,几乎不用关注实际的事务实现是什么。
Spring基于注解的xml的配置:
- 包扫描
- 动态管理类
- 数据源
- jdbcTemplate的配置
- 声明事务类
- 启动事物管理
代码:
<context:component-scan base-package="com.zhiyou.han"></context:component-scan>
<aop:config proxy-target-class="true"></aop:config>
<!-- 数据源的配置-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="root"></property>
<property name="password" value="199617"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/product"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="initialPoolSize" value="3"></property> <!-- 初始化时常量的个数 -->
<property name="maxPoolSize" value="9"></property> <!-- 增大的最大的常量个数 -->
<property name="minPoolSize" value="2"></property> <!-- 当常量池的个数销毁,但是最终保留2个便不在销毁 -->
<property name="acquireIncrement" value="2"></property> <!-- 当常量池个数不够用的时候,每次增加2个,最大不超过MaxPoolSize -->
<property name="maxIdleTime" value="5000"></property> <!-- 每个常量池空闲5秒没有被使用被销毁-->
</bean>
<!-- jdbcTemplate的配置 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 声明事务类 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 启动事物管理 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
Java代码
(在service层的方法或是类前边加注解 @Transactional )
基于xml配置:
只需要将第六个步骤,事务管理启动变为如下代码
<!-- 基于xml配置事务管理 -->
<tx:advice id="adivce" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="query*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* com.zhiyou.han.service.*.*(..))" id="pointcut"/>
<aop:advisor advice-ref="adivce" pointcut-ref="pointcut"/>
</aop:config>
本文来自博客园踩坑狭,作者:韩若明瞳,转载请注明原文链接:https://www.cnblogs.com/han-guang-xue/p/9769018.html