00:01
各位,刚才呢,我们完成了基于XL方式进行声明式事务管理,那下面呢,我们再做个操作,做个什么操作呢?各位注意啊,咱们最开始呢,是用注解方式做的这个事务操作,但你发现注解方式中它是不是也需要写配置文件呀,所以咱们下面我想做件事情做什么,我想做一个叫。完全注解开发就这里边啊,我们不用配置文件,完全都有注解,把这做到,所以咱们最后来做这么一个事情,做一个完全注解方式,实现这个声明式的事务管理。把这个咱做到,那怎么做给各位来写一下,咱之前在讲那个IOC等于做过类似的特点,咱们用完全注解方式要怎么做,是不是要创建一个叫配置内容,使用这个配置内来替代咱们那个XL配置文件,所以现在我们就通过配置内把这过程给各位来写出来,那咱们看怎么来做,就是完全注意做到。
01:10
那我们写一下啊,首先在里边呢,咱们把这些关掉,然后我现在打开B一点叉L,因为这里边咱是用注解做到的,那我现在咱们建个配置类,通过配置类对照里边写法,把它都改成配置类中这个那种,我加一个叫conig这么一个包。然后在这个包里边,咱们建一个配置类,假如配置类我就叫TX。Config这个,所以咱的配置类,那配置类怎么做呢?第一个加个注解叫configuration,代表它是一个。配置内,然后第二部分再看配置文件中,在配置文件中是不是有这段话呀,叫做组件扫描,那里边咱做个组件扫描,加一个叫come,只看里边加一个base package,加上你那个包的路径,咱的包是comedy at硅谷。
02:13
把这个咱加上,然后加上之后咱看下面还有什么,是不是有连接池,配置ABC模板包这个管理器,这个咱一块儿来写,然后再看最后一行,叫开启事物的注解,这个在里边咱需要加上,那加个什么?有这么一个东西叫unable trans manager,就是表示开启我们的事物,所以现在在里边我们加了这么几个,包括配置类的注解,包括开启这个组件的扫描,以及开启事物。然后都加上之后,最后还有几个地方咱需要写要配置文件中大来看有什么第一个地方,这个地方连接池是不是要做到,那我现在啊在配类中咱就来创建一个数据库的。
03:03
连接池。那怎么做?给各位来说一下啊,因为咱们在培乳电影中,我们就是bin ID class,是不是创建这个bin的一个实例,而bin实例你在per类中怎么做呢?咱需要加个注解,这注解很好记。大家看叫什么,就叫B,然后里边几个方法,让这方法就返回你的对象,就咱的对象就是里边这个it source,那我现在把它做个返回,然后咱给方法起个名字,比如叫get得1SOURCE,在这里边咱就把它的对象创建出来,然后做一个re return就可以了,那这对象创建现在在里边我就是把这段代码写成咱们的具体的一个代码部分。那我首先咱就先溜上这么一个德鲁一的连接池。等于谬上一个连接池,然后在里边呢,咱就来设置它里边的相关的参数。
04:02
那我们来设置一下啊,咱看一下第一个应该是这个叫driver class name,就是我们那个驱动名称,第二个有你数据库这个URL。地址,然后第三部分有数据库的用户名,包括最后一部分是数据库那个密码,那我们现在把这几个都拿过来,然后最终退一个source,这样的话就把它做到了,这些值我先复制过来,第一个驱动。就是com.MYSO.jdbc.driver第二个数据库的路径,这个路径把它拿过来,然后第三个是用户名,我们是root,第四个是密码,我们这也是root,所以现在大家看这段代码,这段代码做的含义就跟咱们配置文件中做的含义是一样的,它就表示在我们死人的IOC的容器中创建一个德一连接池对象,并且在对象中有它的存分参数,在LC容器中就存在了这个data s这么一个对象,这个啊,就是连接池用这个S并注解跟配置文件中是相同的。
05:15
这个完成,然后完成之后再看下一个,下一个呢,咱要做件事情就是做这个东西。是什么?就是创建JDBC模板的对象,把这个能做到,那怎么做跟上面应该一模一样了,那我来一个艾特B。然后在里边我们来一个public,这叫jdbc public,我来一个get JD bc。Tablet,然后在里边咱就是扭上这么一个JDBC模板的这个对象啊,直接new一个对象。然后拧完之后,我把它做一个。瑞退。当然各位注意啊,咱们在这个配置文件中,在JDBC模板中是不是需要注入一个data source,这个data source注入方式是不是用set方法注入,所以现在我们需要做个注入。
06:12
我写个注释啊,注入。Data source。咱们加这个方法,Set source。然后把它传过来,那怎么传呢?因为刚才这个方法是不是就造给大家强调两种写法,第一个写法,你可以把这方法在里边调用,这么做可以,大家这么做的话会有一个问题啊,什么问题大家可以想一下,我现在这么做里边说现对象,然后你执行执行这个方法是不是又会进行创建,这方法还会执象,但是现在我这个方法一执行,在我们的IOC容器中,是不是已经有了这个data s这么一个对象,所以咱们直接把它注入就可以了,那怎么做呢?你在这个参数中加上一个叫。
07:01
Data source这么一个类型。然后里边我们加上这个叫data source,把这个直接注入进来,而这么做什么意思呢?给大家强调,因为现在在IOC容器中已经存在了Excel对象,咱这么写就表示根据它的类型到IOC容器中找到对象,把它做注入,就好比说咱之前写那个o to那个注解,根据类型做个注入,所以现在我们就这么来做几个注释,它就是到IOC容器中。根据你的类型找到JD source,然后完成这个注路,所以咱这么写就可以了,因为现在你在里边有这个对象,这是JDBC模板对象,然后创建之后下面还有一个事物管理器的对象,把它我们也做过创建。角位置啊,创建事物管理器的对象,那咱们也是写一个艾特B。
08:03
加个public,加上它的这个名字,我们叫data source transition manager,然后叫这个。那种在里边咱们也是new这个对象,那我现在给他就new下啊,我叫trans manager,等于new上这个对象在里边呢,也是注入这个data source,然后咱们用相同方式从IOC容器中把它找到,然后完成这么一个注入,最终咱把它做一个re return trans塞manager,所以这样的话,咱就把这个配置文件再就完全替代了,在这个PE类中咱写了这么多东西。那我们最后看一遍,然后最后做测试。大家看啊,第一个configuration配置类,第二个common,看组件扫描,第三个unable trans management开启事务,然后里边连接池,JBC模板,事务管理器对象,这些都用艾特并注解,把它做到,就表示你把这个在LC容器中进行创建,创建之后根据类型可以做注入,这样的话我们就完成了,然后完成之后来看效果啊,我现在这里边加了传三人,包括加这注解事物已经完成了,最后咱写一段测试代码给他,就测试一下。
09:27
来看效果啊。那这个改个名字我们叫。和COUNT2,然后怎么测试,之前咱写过,我现在new这个对象叫annotation con obation contact里边加上你那个配置类的class,它就会加载配置类,然后把配置类中的内容会生效,在内容中它会开启组件扫描,包括创建这些对象,现在我们就写出来了。这么一构基本结构,把这个啊,我们就做到了,然后做到之后最后单位的代码执行一下,咱看一下啊,目前表里边都是1000,包括我在service里边。
10:11
异常是不是也模拟出来了,然后现在咱把它执行下,看一下结果什么样的。那就验证一下,我改成配置类之后,就是没用配置文件这个事物能不能添加成功。咱们看啊,现在这里边就是零不做除数,然后到表里边,我们现在刷新。大家看数据是不是没有变,证明咱事物是不是生效了,所以这就叫做完全注解开发,咱们通过一个配置类就可以完全替代我们的配置文件一种方式,各位给他要知道。所以咱们啊,现在把这个过程就完成了,当然我之前也提到过,就是咱们用这种方式啊,其实我们一般在这一开发中,一般用到是另外一个东西叫boot boot是对做的封装,但在润里边你也可以用完全注解方式把这些功能给它做到这个啊,我们就也是完成了完全注解方式实现事物的这么一个操作。
我来说两句