Spring:事务管理举例——购买股票

本文介绍了在Spring框架中如何通过不同的方式管理事务,确保银行账户扣款与股票账户增股操作的一致性。讨论了AspectJ、注解以及事务代理工厂Bean三种事务管理方法,并分析了它们的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们定义了两个实体类及对应的表:

public class Account {

private Integer aid;

private String aname;

private Integer balance;

public class Stock {

private Integer sid;

private String sname;

private Integer count;

定义了两个dao接口及其实现类,主要负责银行账户开户和增减钱、股票账户开户和增减股份。

Spring:事务管理举例——购买股票

stock

Spring:事务管理举例——购买股票

account

定义了个service类作具体负责(银行、股票开户和购买操作)我们这里具体来看购买操作:

Spring:事务管理举例——购买股票

定义了个异常类:

Spring:事务管理举例——购买股票


一、事务管理必要性分析:假如在购买股票过程中出现异常,就会导致银行账户钱减少,而股票账户数量没有增加,这在实际应用中是不允许操作的,为此我们将银行账户和股票账户绑定在一起,让他们成为一根绳上的蚂蚱,一旦出现异常,成功的那个必须要作回滚。

这就是事务的原子性,而事务处于项目的dao层,而我们的购买操作处在业务层,那就就需要将事务从dao层提升至service层。

为此,spring对事务的关联提供了三种方式:


一、AspectJ对事务的管理(重点,最为常用的方法):

Spring:事务管理举例——购买股票


二、使用注解方式:

首先在配置文件添加如下配置:

Spring:事务管理举例——购买股票

在service类里添加注释:

Spring:事务管理举例——购买股票


三、使用Spring事务代理工厂Bean管理事务(不推荐)

不推荐的原因:

  1. 会导致代码冗余。

  2. 不能直接访问目标类,不符合逻辑。

Spring:事务管理举例——购买股票

这种方式的测试类getBean的是我们定义的工厂serviceFactory,所以不符合逻辑。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值