栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring的事物控制(利用xml进行开发)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring的事物控制(利用xml进行开发)

首先我们要知道,SpringMVC的事物控制其实就是利用了aop的思想。

所以在开发过程中我们要知道谁是切点?谁是通知?配置切面?

在这里的切点就是我们需要进行事物控制的方法,通知在这个事物控制里面就是事物控制。然后再进行织入的过程。

接下来我们用一个转账的例子来详细解释利用xml来进行事物的控制。

准备工作:

先在pom中导入我们需要的坐标:

  
    
      junit
      junit
      4.11
      test
    
    
      org.springframework
      spring-context
      5.0.5.RELEASE
    
    
      org.aspectj
      aspectjweaver
      1.8.4
    
    
      org.springframework
      spring-jdbc
      5.0.5.RELEASE
    
    
      org.springframework
      spring-tx
      5.0.5.RELEASE
    
    
      org.springframework
      spring-test
      5.0.5.RELEASE
    
    
      c3p0
      c3p0
      0.9.1.1
    
    
      mysql
      mysql-connector-java
      8.0.27
    
    
      junit
      junit
      4.12
    
  

 建立实体类:

再创建dao层的接口和实现:

再创建service层的接口和实现:

再创建controller层:

然后在配置文件中,分别为其配置bean对象:

    
        
        
        
        

    
    
        
    
    
        
    

    
        
    

通过完成上面的步骤我们已经完成了数据库的连接。

先进行验证 刚开始我们每个账户的钱都为5000

我们先执行一下controller层的main方法:

结果:

当我们在service层中:在转账方法中,这么书写:

它的运行过程为:第一个人已经把钱转出去了,但是出现了异常,程序结束运行,所以第三行代码就没执行,那么就没人收到上个人转出去的钱。所以就出现了如下问题:

所以我们要对其进行事物控制,要么一起运行成功,要么都不运行成功

接下来我们就用xml配置方式来完成事物控制。(在上面我们就已经说了用xml配置方式来完成事物控制其实就是基于aop(面向切面变成))

第一步:首先找到切点(也就是需要增强的方法)在这里就是我刚刚说的转账方法

第二步:配置好通知(增强方法)(在这个事物控制里面我们不需要自己去编写通知,只需要导入命名空间,通过别人的来完成)

第三步:织入(将切点和通知织入到一起)

第四步:测试

下面代码实例:

第一步:首先找到切点


    
        
    

第二步:配置好通知(增强方法)


    
        

    


    
        
            
        
    

在这里需要详细解释一下:首先我们先进行配置的事物的增强再配置的管理器。

我们通过引入tx命名空间来进行事物控制,首先标签为父标签,然后里面的属性,id是可以随便命名的,但是属性transaction-manager是必须要存在的,因为我们在进行代码编写的时候使用的是jdbc来完成的,因此我们要用这个属性来告诉spring我们是用什么数据库来完成的,因为不同的业务需要的数据库可能不同,所以我们就需要在这里声明,然后我们再配置上面的事物管理器(jdbc对应的管理器就是DataSource)里面需要进行dataSource的注入,因为我们在执行jdbc的时候首先需要一个连接connection,这个注入就是为了拿到刚才的连接。

接下来是它的子标签:,顾名思义就是它的属性,设置事物的属性信息的(在这个标签里面可以配置多个标签)。里面的标签:

表示的是哪些方法需要增强(也就是需要事物控制),然后*代表的是全选的意思。在中还有很多的其他属性,你不书写的时候那些属性都有默认值。

上面的那个代表的意思就是需要增强的方法是transfer,第二个属性表示的是隔离级别,第三个代表的是传播行为,第三个代表的是只读。

 

第三步:织入


    
        
    

第四步:测试(最开始每人还是5000)

经运行结果:

就完成了事物控制。

 

 

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号