例子、

  <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <!--扫包-->
<context:component-scan base-package="com.apcstudy.tx"></context:component-scan> <!--加载properties的文件-->
<context:property-placeholder location="classpath:conf/dbconfig.properties" /> <!-- 配置数据源-->
<bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="jdbcUrl" value="${jdbc.jdbcUrl}" />
<property name="driverClass" value="${jdbc.driverClass}" />
</bean> <!-- 配置JdbcTemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="pooledDataSource" />
</bean> <!--事务控制:事务切面-->
<bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 控制住数据源 -->
<property name="dataSource" ref="pooledDataSource" />
</bean>
<!--2:开启基于注解的事务控制模式;依赖tx名称空间 -->
<tx:annotation-driven transaction-manager="tx" />
<!--3:给事务方法加注解@Transactional
  @Service
public class BookService { @Autowired
private BookDao bookDao; /**
* 结账;传入哪个用户买了哪本书
* @param username
* @param isbn
*/
@Transactional
public void checkout(String username,String isbn){
//1、减库存
bookDao.updateStock(isbn); int price = bookDao.getPrice(isbn);
//2、减余额
bookDao.updateBalance(username,price);
}
}

spring_声明式事务: @Transactional的更多相关文章

  1. Spring声明式事务@Transactional 详解,事务隔离级别和传播行为

    @Transactional注解支持9个属性的设置,这里只讲解其中使用较多的三个属性:readOnly.propagation.isolation.其中propagation属性用来枚举事务的传播行为 ...

  2. spring4声明式事务--01注解方式

    1.在spring配置文件中引入 tx 命名空间 xmlns:tx="http://www.springframework.org/schema/tx" 2.配置事务管理器 < ...

  3. Spring中声明式事务的几个属性的解释

    声明式事务 @Transactional (通常用在service层)事务属性:传播行为,隔离级别,回滚,只读,过期 1,spring支持事务传播行为:propagation(常用以下两个)    ① ...

  4. Spring声明式事务管理基于@Transactional注解

    概述:我们已知道Spring声明式事务管理有两种常用的方式,一种是基于tx/aop命名空间的xml配置文件,另一种则是基于@Transactional 注解.         第一种方式我已在上文为大 ...

  5. spring事物配置,声明式事务管理和基于@Transactional注解的使用

    http://blog.csdn.net/bao19901210/article/details/41724355 http://www.cnblogs.com/leiOOlei/p/3725911. ...

  6. spring声明式事务管理方式( 基于tx和aop名字空间的xml配置+@Transactional注解)

    1. 声明式事务管理分类 声明式事务管理也有两种常用的方式, 一种是基于tx和aop名字空间的xml配置文件,另一种就是基于@Transactional注解. 显然基于注解的方式更简单易用,更清爽. ...

  7. @Transactional、Spring的声明式事务

    传送门 一.Spring的声明式事务 需要在xml文件中配置 <!--配置事务管理器类--> <bean id="transactionManager" clas ...

  8. spring事务配置,声明式事务管理和基于@Transactional注解的使用(转载)

    原文地址:http://blog.csdn.net/bao19901210/article/details/41724355 事务管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的 ...

  9. Spring事务的介绍,以及基于注解@Transactional的声明式事务

    前言 事务是一个非常重要的知识点,前面的文章已经有介绍了关于SpringAOP代理的实现过程:事务管理也是AOP的一个重要的功能. 事务的基本介绍 数据库事务特性: 原子性 一致性 隔离性 持久性 事 ...

  10. Spring声明式事务管理

    一.Spring 的声明式事务管理概述 1.Spring 的声明式事务管理在底层是建立在 AOP 的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法 ...

随机推荐

  1. .NET Core GC计划阶段(plan_phase)底层原理浅谈

    简介 在mark_phase阶段之后,所有对象都被标记为有用/垃圾对象.此时,垃圾回收器已经拥有启动垃圾回收的所有前置准备工作. 这个时候,垃圾回收期应该执行"清除回收"还是&qu ...

  2. python包学习:-了解

    本节先做一些了解. numpy 参考:NumPy使用 NumPy 教程 NumPy是Python中科学计算的基础包.它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于 ...

  3. AGC008

    AGC008 B 题目大意 给出一个序列,一开始全是白色,一次操作可以染黑或染白一段长度为 \(K\) 的区间,要让最后序列中黑色格子上数的和最大,求这个最大值. 解题思路 考虑找结论. 发现我们一定 ...

  4. 搭建个人AI知识库:RAG与本地模型实践指南

    引言 你是否想过拥有一个私人订制的AI助手,能够随时为你提供最个性化的信息?本文将带你一步步搭建一个基于本地模型和RAG技术的个人知识库. 搭建本地模型 环境 os: archlinux 内存: 32 ...

  5. 3. 使用sql查询csv/json文件内容,还能关联查询?

    1. 简介 我们在前面的文章提到了calcite可以支持文件系统的数据源适配, 其实官方已经提供了相应的能力, 其支持csv和json的查询适配, 废话不多说, 直接展示. 2. Maven < ...

  6. XReport通过数据控制控件是否打印

    需求场景:医嘱单在患者出院的时候,需要标记一条红线,表示以下没有医嘱了.数据库中此记录的一个字段属性isRed值来标记这一行. 实现:XReport报表的明细区域增加一个line1对象.然后在明细表格 ...

  7. python式思辨

    设A为条件,B.C为完全相反的结论. KFK:if〈A〉,〈B〉 GLXY:if〈A〉,〈C〉 我不知道为什么会出现这样的结果,也许是我的版本太久没有更新了吧

  8. Mac启用或停用root用户

    1.选取苹果菜单 () >"系统偏好设置",然后点按"用户与群组"(或"帐户"). 2.点按 ,然后输入管理员名称和密码. 3.点按 ...

  9. Mac使用docker安装Doris

    一.编译源码 (1)拉取编译镜像docker pull apache/incubator-doris:build-env-1.2 (2)Mac电脑上拉取源码git clone https://gith ...

  10. FANUC发那科工业机器人减速器维修小细节

    在现代工业生产中,FANUC发那科机器人已成为不可或缺的一部分.然而,随着时间的推移,发那科机械手减速器可能会出现故障,影响机器人的正常工作. 一.了解减速器的结构与工作原理 在开始FANUC发那科机 ...