2019独角兽企业重金招聘Python工程师标准>>>

接上篇配置,在com.test.spring.tx包下加入业务接口和类
####业务接口类

public interface BookShopService {public void purchase(int userId,int bookId);
}

####业务实现类,注意添加有事务

package com.test.spring.tx;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;@Service("bookShopService")
public class BookShopServiceImpl implements BookShopService{@Autowiredprivate BookShopDao bookShopDao;//声明式事务@Transactional@Overridepublic void purchase(int userId, int bookId) {//1.获取书的单价double price = bookShopDao.getBookPriceByBookId(bookId);//2.更新书的数量bookShopDao.updateBookStock(bookId);//3.更新用户余额bookShopDao.updateUserBalance(userId, price);}}

####测试类

package com.test.spring.tx;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestTx {private ApplicationContext ctx;private BookShopService bookShopService;{ctx = new ClassPathXmlApplicationContext("applicationContext.xml");bookShopService = ctx.getBean(BookShopService.class);}@Testpublic void testBookService(){bookShopService.purchase(1000, 1001);}}

####配置文件

    <context:component-scan base-package="com.test.spring.tx"></context:component-scan><context:property-placeholder location="classpath:db.properties"/><!-- 配置数据源 --><bean id="dataSources" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="user" value="${jdbc.user}"></property><property name="password" value="${jdbc.password}"></property><property name="driverClass" value="${jdbc.driverClass}"></property><property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property><property name="initialPoolSize" value="${jdbc.initPoolSize}"></property><property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSources"></property></bean><!-- 配置事物管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSources"></property></bean><!-- 启用事物注解 --><tx:annotation-driven transaction-manager="transactionManager"/>

转载于:https://my.oschina.net/u/2312022/blog/742276

spring--(25)声明式事务相关推荐

  1. (续)SSM整合之spring笔记(声明式事务)(P110-116)

    目录 一 .声明式事务概念 二 .基于注解的声明式事务 1 .准备工作 (1)加入依赖 (2)创建jdbc.properties (3)配置Spring的配置文件     tx-annotation. ...

  2. 【SSM框架系列】Spring - JdbcTemplate声明式事务

    JdbcTemplate概述 以往使用jdbc时,每次都需要自己获取PreparedStatement,执行sql语句,关闭连接等操作.操作麻烦冗余,影响编码的效率. Spring把对数据库的操作在j ...

  3. spring配置c3p0连接池、spring的声明式事务管理

    一.spring配置c3p0连接池: 1.导入maven依赖: <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> & ...

  4. Spring框架声明式事务管理

    Spring框架声明式事务管理 底层就是AOP原理,面向切面编程 在不修改源码的情况下,对方法进行增强 Spring框架事务管理相关类和API PlatformTransactionManager 平 ...

  5. 保护亿万数据安全,Spring有“声明式事务”绝招

    摘要:点外卖时,你只需考虑如何拼单:选择出行时,你只用想好目的地:手机支付时,你只需要保证余额充足.但你不知道这些智能的背后,是数以亿计的强大数据的支持,这就是数据库的力量.那么庞大数据的背后一定会牵 ...

  6. ❤️Spring的声明式事务

    ❤️Spring的声明式事务 事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎! 事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性. 事务就是把一系列的动作当成一个独 ...

  7. 06_02_任务三:Spring JDBCTemplate 声明式事务

    任务三:Spring JDBCTemplate & 声明式事务 课程任务主要内容: Spring的JdbcTemplate Spring的事务 Spring集成web环境 一 Spring的J ...

  8. Spring的声明式事务底层原理

    文章目录 声明式事务的概述 声明式事务的初探 声明式事务的源码分析 声明式事务的概述 Spring 的声明式事务管理在底层是建立在 AOP 的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始 ...

  9. Spring AOP声明式事务

    Spring AOP声明式事务 Spring AOP声明式事务 传统spring配置 SpringBoot配置 Spring AOP声明式事务 Spring AOP声明式事务可以帮我们自动管理事务,在 ...

  10. Spring系列--声明式事务管理

    Spring事务管理概述 Spring的事务管理简化了传统的事务管理流程,并且在一定程序上减少了开发者的工作量. 事务管理的核心接口 在Spring的所有JAR包中包含一个名为Spring-tx-5. ...

最新文章

  1. 自动驾驶十字路口解决方案
  2. hive函数 get_json_object的使用
  3. phonegap在android中如何退出程序
  4. Oracle使用impdb/expdb数据泵导入/导出数据库
  5. Delphi Menu Designer(菜单设计器)之一
  6. NLP, 知识图谱参考资源
  7. nginx优化配置选项
  8. centos mysql安装
  9. mysql可以创建多少条数据类型_mysql支持的数据类型
  10. python自带模块可以控制鼠标吗_python自带模块模拟鼠标和键盘操作
  11. 集成电路的设计 —— 半导体
  12. Google Map API在IE6下出错的解决方法
  13. 手撕Buck!Buck公式推导过程
  14. 浅谈android应用之编程语言
  15. sci论文发表的重复率要求低于多少
  16. Linux系统下制作windows系统安装U盘
  17. 加州大学洛杉玑分校计算机专业,UCLA的Computer Science「加州大学洛杉矶分校计算机科学系」...
  18. 【电脑配置图】i3-10100f+1650显卡(2020.11.28)了解
  19. opc ua与opc da区别_OPC,OPCDA,OPCUA
  20. 2021-12-21 SWUSTOJ69偷菜时间表(解题思路详解)

热门文章

  1. 二叉树的后续遍历算法实现
  2. Learn Python the Hard Way: 字典
  3. RMI原理揭秘之远程方法调用
  4. B1有个自定义表操作慢
  5. Oracle中实现continue的方法
  6. Python的小特别
  7. Go语言 中文分词技术使用技巧(一)
  8. 【2】thinkphp 3.2.3简单介绍
  9. Heu OJ 解题报告索引
  10. 推荐几本书,这些书.Net程序员最好要看