首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java开发,实现事务完整系统,用 springAOP如何快速实现此功能?

今日就是圣诞节了哦!

有没有感觉像过年的感觉呢?嘻嘻

同伴们节日都要快快乐乐的哈

那么开始今日的共享

先来了解一下业务的概念:

业务是一系列作为一个逻辑单元来履行的操作的集合。它是数据库保护数据共同性的单位,它讲数据库从一个共同状况,转变为新的另外一个共同状况。

简单来说就是:对一组数据进行处理,要么所有操作都成功,要么全部都失利,这样就保证了数据一向一向的状况,保护了数据的完整和可靠性。

我们来做个小比如,模仿一下转账的流程。

数据库内容:

来写一下 DAO 层的接口,两个操作数据库的办法,一个是增加钱数,一个是削减钱数

实现这两个办法。

在 service 层界说一个转账的办法

转账操作的业务逻辑

装备文件

测验一下

看一下数据库的成果:转账成功了

这是程序正常运行,没有bug的情况,万一程序在转账的过程中出错了呢?

程序呈现了 bug 。再测验一下

看一下数据库的成果

我们总共是3000,现在张三和李四加起来是2900,转丢了100。现在你明白我们为什么要运用业务了吧!

业务的属性

原子性(atomicity):一个业务是一个不可分割的工作单位,业务中包括的所有操作要么都做,要么都不做。

共同性(consistency):业务必须是使数据库从一个共同性状况变到另一个共同性状况。共同性与原子性是密切相关的。

阻隔性(isolation):一个业务的履行不能被其他业务干扰。即一个业务内部的操作及运用的数据对并发的其他业务是阻隔的,并发履行的各个业务之间不能互相干扰。

持久性(durability):持续性也称永久性(permanence),指一个业务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

这四个属性一般称为 ACID 特性。

运用 spring 基于 xml 装备实现业务。

业务原本是数据库中的概念,是在 dao 层,一般情况下,我们会把业务办理提升到的业务层 (service)。这是为了更好的是用业务来办理我们的业务逻辑,spring 并不直接办理业务,而是提供了多种业务办理器 jdbc (自界说封装jdbc,jdbctemplate,mybatis ) 运

用:DataSourceTransactionManager

我们来装备一下:

引进jar,引进aop约束

aopalliance-1.0.jar

spring-aop-4.2.1.RELEASE.jar

spring-tx.jar

xml装备业务

现在让我们来测验一下

转账失利了,查看一下数据库

没有运用业务时,转账过程中呈现 bug,就会导致我们扣钱成功了,可是钱转入失利了,钱的总数就少了。

运用了业务之后,转账过程中程序呈现 bug ,我们的扣除的钱可以回到本来的账户,不会造成损失。

各位我解说的还清楚吗?

想要了解更多java相关知识那就进来吧!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171225A0F5GI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券