00:01
好来,接下来我们给大家去说一下,呃,怎么去使用S码配置文件的方式呢?来去使用我们这个spring的一个生命是数啊好,那么首先呢,我需要做这样的事啊,大家稍等一下啊,做什么事呢?我们就把这个所有哎,我们讲这个注解的时候用到的这几个包,看到没有。看到了吧,哎,就这几个报道我分别呢去啊拷贝一个出来啊,就是我们的我都拷成一个XL啊C。好,我就把这改成不叫了,我们叫X能看懂吧,L这X啊,OK,好,这个也是准备。啊呃,异常什么的,我都拷变一个了啊X啊来ctrl c ctrl v OK,这个也是改成这个X秒啊,然后这个也是啊,根据CRV。
01:02
啊,大家他去写的时候呢,你也就直接拷贝就行了啊,不必要再写一次啊,那把这个拷贝出来以后呢,我们来看一下啊呃,来就是我们拷贝出来这么几个都看到了吧,啊现在还不能用哈,啊,我还能去改一点东西,你看啊book DAO,然后呢,Bookshopo。注意嗯,这个里面的话呢,你看一下我们这个异常什么的,用的是不是还是这个推里面的呀,是吧,把这个干掉哈,我们把这个包呢,都给它换一换。来导个泵啊,导的是这个X妙里面的啊,X里面的OK啊,这个就搞定了,呃搞定以后呢,我们再来看啊,像这个呃,异常我不用去管啊,DAO也不用去管了,DAO异常啊就好了,然后你看这个300 300里面我们改的地方比较多啊,你看首先呢,它中午的一个DAO,那么对于这个DAO来讲,你看现在是不是还是这个notation的呀,以及个异常都是啊,我们把它去掉好,去掉以后呢,我们重新来导包啊,导的是这个X秒。
02:04
明白了吧,啊到的是S的啊好这就可以了,然后呢,对于这个看一下啊来讲,它里面我们。没有导回我们自己的哈,那这个也不用去管了啊好,最后呢,有一个测试类啊,测试类里面的话也是你看一下把这个所有的都把它去掉。OK,去掉以后呢,我们重新来找个包好导的都是X的啊啊XL啊XL。看明白了吧,嗯,把这个都得改一下啊,要不你的话跟之前就有什么冲突了啊,OK,嗯,把这些包头弄完以后呢,我们再然后就是把这个所有加事物的地方你看一下啊,这个地方是加Y啊去掉,然后呢,像这个东西我就不去了好吧,要不的话,我是不是还得以病的方式把这个配置进去啊,麻烦啊,我就不去了啊,我就只把这个事物相关的给它去掉啊,这个也给它去掉,OK,这个上面我们都没有事物了啊,都没有了,还有一个就是我们这个castle上面也加过一个事物,也把它去掉好,那么现在的话呢,我们就没有任何事物,然后呢,我们来做一个测试啊,大家注意,现在测试一下,我们会出现一个问题,你看了哈,现在还是我们的表里面有50块钱,然后呢,呃,库存的话都改成十。
03:16
好提交一下啊,现在的话我们去买一下你看了啊。买一下,然后呢,出现一个问题对吧,嗯,出出了个啥问题。啊,现在还不对是吧?啊,还差个东西,你看这配置文件不能使用它了吧,对不对啊,我们还差个配置文件啊来这就C吧,叫做TX_X妙,能看懂吗?OK,好,这里面的话呢,我们需要改一下这个扫描的包啊,这个改成扫的是X妙啊,这就应该没问题了啊啊15的话我们也不用啊,现在也没加,然后呢,再来到这把这些改一下下划线的X妙,然后呢,再来测试一下。
04:01
好,他告诉我这个余额不足,然后呢,我们看一下这个数据库里面的数据啊,诶大家来看一下,我刷新一下,看是不是少了100对吧,现在是有问题的啊啊,那么有问题的话,我们就来解决一下,怎么解决呢?我们就来到我们这个配置文件中,呃,因为现在我们使用的是这个XM的方式,所以说呢,像这个呃,数据数据源肯定得有的啊,包扫描我们也得有,因为我们的主站的扫描是通过它来做的,对吧?而事物的管理的话,我们通过下面来写啊,首先这个事物管理器你肯定也是要有的啊,但是呢,这个事物注解这就不用了,明白吧,这个就不用了啊啊呃,配好这个。来把这个去掉啊,配好这个数管理器以后呢,接下来我们做什么事呢,我们就来配置什么呀,基于我们的X啊,基于S配置我们的这个事物管理啊,怎么配啊。啊,注意首先我们需要来加入一个叫做什么TX的这个秘密空间啊,这个我们已经加过了来,那我们用到谁呀?用的是这个叫做啊TX,大家注意这里面呢,有一个什么呀?TX advice啊TX advice啊用的是它呃,这个配置是什么呀?啊TX advice来听我说这个呢,就是我们基于X妙来这个事务管理的一个什么配置的一个节点,然后呢,大家来想一下啊,如果我想去配置一个事务管理是吧?啊,那我们最关心的几个对象是什么呀?啊有哪些是不是事物管理器啊对吧?然后呢,诶事物的这个属性设置吧,就是你的哪些方法需要用什么属,用什么事物吧,对不对,这也是我们需宝关心的啊好吧,那我们就奔着这两个点去啊,你看一下,呃,这里面我们可以写什么呀,它有一个什么t attributete啊t attributete。
05:57
能看明白吗?TX垂BU,然后呢,呃,TX垂BU里面你看配的就是什么TX method,那我们就来分析一下啊,这个TX advice,这个advice应该是要让我去指向一个事务管理器,而这个TX method呢,就是你来配置一下哪些方法要去使用什么样的事物。
06:18
能明白吧,所以说你看了哈,在这个里面呢,我们依旧有一个乘30慢,是不是有一个这样的一个属性设置啊,然后呢,之前通过骤解的方式给大家解释过,假如说你事务管理器的这个名字就叫做trans辖manager,那么这个可以不用配,但是你的名字如果不叫做trans manager,那么你一定要把你事务管理器的名字给它制定到这还记得吧,OK,那么现在我们使用xman的方式也是一样的,好,然后接下来这个这样attribute呢,其实就是来配置我们的事物属性,好配置我们的事物属性怎么配置呢?大家注意就是下面这个g X method就是来配置啊,配置什么呀,就是具体的啊方法搬使用的这个食物搬属性好,那我们来设置,你看看哈,对于现在来讲的话呢,我就希望诶,一个是搬多个方法,另外一个就是我们的。
07:18
啊,Check on的这两个方法是都要手数的,对吧,我们我们先在配置这个by book,好,那我就把这个by book这个方法的名字给它考贝一下,拿到这个位置好,我希望我的这个斑秃考啊这个方法去使用一个事物好,那么你要使用事物的话,我们就离不开我们的事物属性,那么大家来看这里面你所有刚刚讲过的都能配像我们的。隔离级别传播行为,好,我都写到这啊传播行为然后呢,啊只读看到了吧,啊只读然后还有什么呀,还有我们这个你看啊roll back for back for都有的吧,对不对,还有一个什么timeout超时看到没有对吧?比如说我们把这个还是设置为什么呀?啊还是设置为三啊那么是否只读啊,不是只读的,然后呢,呃,使用。
08:12
长方行为用谁呢?我们用什么require或者什么用这个request new都可以啊,比如说我设置为request new对不对,那隔离级别的,哎,比如说你想指证一下那个什么committed。看到了吗?对吧,所有你在那个注解里面加的东西,这里面都能加啊,那么这些的话,就是对于我这个bybook这个方法所设置的一个什么事物的一个什么属性啊,那假如说呢,还尔这个方法,那就再写TX method,它能写多个啊,像我们的CHECK22这个方法,那对于这个CHECK2的这个方法来讲,你看一下啊,我希望它仅仅加上事物就可以了,OK,那你就直接把它写到这,然后呢,像后面的这些东西,它都会有一个默认值的。明白了吗?我们就可以不用再去写了,好,那么大家来看一下这两个方法,我们就都给他什么加上这个事物了。
09:02
明白了吗?能听懂了吧?OK,好,那么可能有同学还想问,呃,如果你这么写的话呢,会比较麻烦,假如说我教他的这个方法有很多个,那我是不是需要每一个方法都得在这区啊,具体的指定一下。你再想想。对吧,你就看现在这种配置方式的话,就得这么去做嘛,如果注解的话,那很简单,我一个注解标到方法上是不就行了,对吧,但像现在这种方式的话,很明显就会麻烦那么一点点,但是呢,其实我们也是有一个可以啊简便一点的方式啊,那怎么写呢?大家注意,那我们就说什么去约定啊,一下这个方法的约定,什么方法的这个名字啊,怎么约定呢?你来听我讲啊。啊名字啊,比如说对于这个所有的你看了啊,TX对于所有的查询来讲。
10:02
好,查询操作来讲,那我希望你们在命名的时候呢,都是以什么呀?以这个呃,Select啊,什么什么什么什么来命名的,能理解什么意思吧?哎,比方说举个例子啊,就select,什么employee啊,什么什么select这个呃,User都是以这种方式来命名的啊,那么我们在写的时候呢,我就不用说挨个把这个方法都指定出来,我只需要写成一个select星,那么它就代表着所有以select开头的方法。啊,那么对于这些查询操作来讲,我就非常有必要把这个read only给它改成true,能明白什么意思吧?啊,把它改成true,因为它是一个只读的,好,那么对于其他的,比如说我们再来写一个啊,呃,像这个比如说修改操作,好,那我希望你都写成什么update。
11:00
什么什么什么对吧,那么我们在写的时候,我就可以写成什么了,你看看啊,就是TX来这个method,比如说update星啊,然后后面的话就去写你的这个事物的属性就可以了,理解这个意思了吧,OK,像那个添加删除是不是都会写了。能明白什么意思了吗?OK,好,那么这个时候可能有还在想,那万一说有一些人在写的时候没有注意这个,把这个方法的名字写成别的了,那怎么办呀,我们最后呢,还可以再来一个叫做什么TX method,直接来个消。听懂了吧,但是呢,这个希望大家猜一下是什么意思呀,是所有方法吗?不是它是什么呀,除了你上面指定的方法之外,剩下的这个方法通通用心来代替,明白什么意思了吗?啊,所以说你看我们这么写的话呢啊,那就也就比较简单了,只不过就是要求你在写这个方法的时候呢,稍微给他有一些什么规则,但其实我们在自己再去写的时候,你那个方法的名字是不是也需要有一些规则啊,对吧?你这个各个模块里面你都需要有一些规则的,你不要随便去命名。
12:12
能明白什么意思了吧?OK,好,那把这个写好以后呢,大家注意好,这个解释一下就是什么啊,除了上述啊之外的啊,上述啊指定的方法之外的所有方法啊,OK,那把这个写到这,那么大家先来想啊,这个我配好以后的话,我们来分析分析,就是呃,什么方法去使用事物,我们都给它写好了,但是现在我来问大家一个问题,这些方法在什么地方呢?对不对,这些方法在什么地方呢?你是不是也得告诉人家啊,好,那么我们来想,我怎么告诉他,你要把这个事物做用到哪些类中的这些方法上面啊。
13:00
怎么写呀,是不是切入点表达式啊,对不对,OK,说出了,大家注意,现在我们还需要使用到一个叫做AOPP的一个配置,好,我们在这个AOPP里面我们要配什么呢?注意了啊,我们加上命名空间以后,A op con,然后这个里面的话,我们知道我是可以去配置一个切入点表达式的,对不对,那我就配一个LP拷费啊,稍微lp point cut,切入点表达式呢,Execution,我来写一个啊,写什么呀,你看了哈,就是呃,这些方法,你看我们写的就是这个包下面的是不是这个包啊。对吧,CTRLC啊把它拿到这好,这是我们的一个包,那就是前面的通过星啊,就是任意修饰符任意啊返回值这个包下面的所有的类的所有的方法,然后呢。讲讲是不是可以了,这不是配好了对吧?OK,那我写了这个切入点表达式,然后给它取一个名字,比如说这叫什么叫TX point part,好来,我们把这个写好以后,切入点表达式也有了,就是这个东西呢,可以去告诉你这些方法在什么地方,但是你看一下他们两个现在有关系吗?
14:24
没有任何关系,因此最后呢,我们还要在这个地方呢,给他什么结合一下啊,就是什么呀,切入点表达式与什么呀,与这个事物啊,设置的一个什么事物配置的结合,我只有给它什么结合一下,我才能什么哎一起来使用,那这个东西我们怎么结合呢?我们需要用到一个全新的一个配置,叫做什么呀,叫做lp adviser啊,这个我们以前没用过啊,它呢主要就是用在我们这个事物里面的,你看它里面有一个advice ref,还有一个叫做point cut ref,你看一下advice不就是它吗?对不对,Point cut不就是它吗?是不是跟它结合起来了,好,那么这个advice ref我们要指向来的就是它,而它的话呢,我们暂时还没有一个ID,因此我也给它加上一个ID,叫做什么TX advice,好,那我在这个位置我就可以写了来TX advice,然后呢point card呢,用的我们的TX point。
15:24
他的是不是他呀,啊这样的话呢,我们就成功的把你的事物的属性,以及去哪找这些事物方法给他什么结合到一起,那么最终我们的这个破呢,就能根据你配好的这个切入点表达式,然后呢找到你对应的这个方法,然后呢,再把你对应的这个事物的属性,事物的设置给它做上去理解了吧,所以说哎,你通过这个XM的这种方式来配置的话呢,就更能体现出来,我们的support事务管理底层其实就是一个a op,是不是更能体现出来了,对吧?啊所以说呢,这就把它配好来吧,那么配好以后的话呢,我们再来演示一下,刚刚给大家去演示的这个问题,好,首先我回到数据库,把它改成十分。
16:15
能看到了吧,改成啊来刷新一下都是,然后呢,余额就50块钱,我现在的再去买能买成功吗?肯定买不成功,对不对?哎,余额不足,但是数据库会减吗?我们来刷新一下啊,这个地方刷新一下会减吗?那么只要他不会减,也就说明什么呢?说明我们刚刚加的这个事物是不是已经生效了,那明白了吧,所以说呢,这就是我们基于X2的方式来去配置我们的事物,那么大家呢,最后讲完了,其实也能感受出来,还是注解好了吧,是吧?诶,因为反正你得去写这个方法呢,那么你在写这个方法的时候,你发现说他需要事物了,那你随手一个注解往上面一标是不是行了,对吧?啊,这也就是为什么现在我们啊,都比较推荐使用这种注解的方式进行开发。
17:06
明白了吧,第一个它写起来特别的迅速啊,第二个呢,看起来呢也比较简洁,像这个东西一大堆往这一配,其实看起来特别复杂,特别乱,明白了吗?OK啊,但是呢啊,基于这个X的方式呢,大家呢,也是要把它去写一写,然后呢,把这个整个的案例呢给它测试一遍,如果能成功了啊,那就也就差不多了,听懂了吧,但是中解的运种方式,你是一定要把它掌握了的,必须得会好吧啊,这是对对你们最基本的一个要求啊,OK,那我们就讲到这儿。
我来说两句