00:00
各位,下面呢我们继续来学习词spring框架,刚才的内容中呢,我们讲到了词分里边进行事务管理有这么两种方式,包含编程式和生命式,所以咱们下面就重点使用声明式事务管理来完成针对事务操作。在声明式里边呢,有两个操作,一个是基于注解,一个是基于channel配置文件,所以咱们下面接下来给各位演示声明式事务管理。咱们使用这个注解方式进行实现,就是注解方式实现声明式。数管理,咱们看这个该怎么做,然后这个演示之后,下面给大家再来演示,基于叉配置文件做这个数管理,那我们先看注解该怎么实现,因为咱们刚才把这环境已经完成搭建,那我们下面在里边做这个操作,那怎么做给各位写下,首先第一步操作咱们需要在这个配置文件中。
01:09
需要配置它,这个叫事务管理器。把这个先做到,这是我们的第一步,然后这什么意思呢?我们刚才提到了,在此文里边呢,它针对事务管理有一个叫事务管理器,而事务管理器是一个接口,这接口下面针对不同的框架,有不同实验类,因为咱们现在用的是GBC模板操作数据库,所以咱用的时间内是这个东西叫data source trans manager,所以下面第一部分咱就来创建一个事务管理器,把这步做到,那咱们来写一下。现在我先来到这个配置文件中,然后在配置文件中我就给它写到这个位置,在里边咱们来创建一个事务管理器。
02:00
把这个我们要做到。然后怎么创建,其实就是创建它这个实现类的这个对象,咱们来一个ID,再来个class,再看里边加上这个实验类,就是咱们刚才看的实验类,我这里写一下,它叫做date source。Transition manager,咱们把这个给他拿过来,所以现在把这个加上了,然后加上之后我们给它起个名字,比如这个名字我就叫transition。卖逆者,这样的话,咱把这个就是事务管理器做出创建,因为现在用的是JDBC模板,对他用的是这管理器,然后写完之后咱看一下它的源码中,在源码里边呢,大家看这位置,这里边呢,我们需要用它的set方式注入里边这个data source,因为它需要这个数据源的部分,就是咱要指定对哪个数据库进行这么一个数操作,所以第二部分在里边咱需要注入这么一个数据源。
03:05
然后把这个注一下。然后注入方式跟之前一样,因为它的名字就叫data source,所以在里边我们加上一个property,里边加data source,再加上一个ref,指定我们自己创建这个数据源的这个部分,所以这样的话,咱们把事物管理器就完成创建,就是在配置文件中创建这个get source trans manager。这步完成了,各位把它能够配置出来,然后这个配置之后,下面我们看第二步怎么做,给各位写一下,第二步操作呢,咱们还是在的配置文件中做配置,配置什么它叫做。开启这个事物的一个注解,因为咱们现在要用注解方式来做这个事务管理,所以咱们要开启事物注解,就让他认识咱们事物的机关注解,这注解一会咱会说的,然后怎么做给各位写一下,首先我们做法中的第一部分。
04:09
咱们在这个spring的配置文件中,需要先引入一个名称空间,这个名称空间叫做TX,就是trans用于做事物的部分,那我现在在里边我们先引入,引入方式跟之前都一样,咱用之前的方式,我把这个再复制一份。然后这里边改成叫做TX,就是事物这里改成TX,下面加上它里边的这么一个结构,按照之前的咱们给它改成这个叫TX。那我给他改一下啊。这个位置我叫做TX,然后这里边同样TX就是关于事物的这个部分,所以咱们现在把这个名称空间我们做这引入,这个需要我们做到,因为大要用到里边这个相关的名称空间中的这些内容。
05:06
我把这个啊给各位。截过来,咱们把这一步做到了,然后这步做到之后,咱在里边就来开启这个事物的注解,就是用里边的这么一个标签,请开启,我写一下第二部分。开启事物的这个注解。那怎么做,给各位写一下啊,在这里边我们的做法就是我先加个注释。开启事物注解,然后里边呢,我们加上一个叫TX inotation drive,这样的话可以开启,在开启中咱要指定它现在用的是哪个事务管理器,就把咱们事务管理器的名字给它拿过来,因为咱们刚才配置事务管理器,要指定通过这个事务管理器来开启你的事注解。
06:01
这是里边的第二部分,咱把它做到了,所以这样的话完成了第一步和第二步,第一步创建数管理器,第二步开启输入注解,把它做到,然后做到之后下面我们再进入到第三步,第三步怎么做,给各位来说一下啊,因为咱们现在用的是不是叫做基于注解方式做生命事物管理,所以第三步怎么做,咱就需要在我们的service的内上边。啊,类上边,或者你service类里边的那个方法上边,怎么样添加一个事物的一个注解,这是我们的第三步,因为咱们在刚才提到我们的事物一般都加到我们的思维层上,就加到这个业务逻辑层上,所以咱们现在在这类上面,或者在里边的方法上面,咱们可以加上这个事物的这个注解,那怎么加给各位写一下,比如现在我来到这个service类里边,在里边我们加注解,等于之前我们写的这个结构啊,这结构先给它注掉啊。
07:12
就当时我们说那个。编程式的方式我先注掉,然后现在我就在这个service类上边加个注解,这注解各位记住,它就叫做transitional这个注解,而加那个注解之后有什么特点给各位说一下,这个注解呢?你可以加到类上边,也可以加到你的方法上边,都可以,我现在就加到那上边。那我来写一下啊,咱小的位置就是现在我们这个注解可能看到了,叫这个喘al。然后这个注解你可以添加到你的类上边,也可以添加到方法上边,而加上这个注解之后有什么特点给大家说一下,如果说啊,咱们把这个注解。
08:05
添加到类上边,它就表示这个类里边的所有的方法都添加上了事物,这是第二个,但是我们强调这个注解呢,也可以放到方法上边,那各位应该能想到,如果说你把这注解啊,添加到你的类里边的方法上边,那怎么做,那就是你他只是为你这个。方法添加了事物,所以这个啊是我们要加在这个注解,那我现在我就把它呢加到类上面,加到类上面之后,那里面方法都可以加事物,当你类中可能有很多方法,那我们这么来做,如果指向在方法上面加,那指方法上边。有这个事物,所以现在把这个我们加上了,加一个叫传三人头这个注解,然后这个注解加上之后,咱们现在就把这个声明式事务管理中这个事务部分给它就配出来了,主要这么一个过程,所以各位把这步骤给它记住,咱再重复一遍,然后咱们通过这个效果测试一下第一步。
09:12
数管理器第二步,引入名称空间,开启输注解。第三步,在你的swi类上边或者方法上边加注解,咱一般为了方便加到类上边,因为加到类上面之后,那类里边的所有方法都可以添加上我们的事物,这样的话咱们把这个就完成了,然后完成之后,最后咱们把效果来试一下,看一下最终结果什么样的。但是下效果啊,比如现在这数据呢,我先给它都变成1000。然后各位看啊,如果说呢,咱之前在没有配置的时候,我们一测试当时有问题,咱刚才演示过了,我这个LUCY900MARY是不是1000没有增加,但是现在我加了事五之后,如果说Lucy少了100之后,它里边出现了异常,那这个时候事物是不会回滚呀,回滚之后它就会变成你操作之前的状态,这里边就是Lucy不会少,麦也不会多,那咱们看最终效果能不能做到。
10:16
咱们来测试一下啊,看一下结果。咱看里边啊是什么样一个特点。然后各位看啊,现在应该已经执行了,然后执行过程中,这里边就是咱刚才看那个BYZ0不能V出入异常,因为咱们手动模拟了一个异常,然后各位现在看一下表中的变化,你看啊,我现在点这个re发的刷新。大家发现数据没变嘛,因为我有异常,它这里就执行了事物的回滚,就让你这里边Lucy没少,麦没有多,所以这样的话,咱就把这个基于注解方式进行声明式事务管理的配置,我们就完成了主要这个过程,过程应该不复杂,注按照这步骤能把它完整给他配出来。
11:08
这样的话,咱就完成了这个操作。
我来说两句