博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring声明式事务管理
阅读量:5167 次
发布时间:2019-06-13

本文共 1580 字,大约阅读时间需要 5 分钟。

    spring的事务管理有两种,一种是编程式的事务管理,另外一种是声明式事务管理。编程式事务管理比较灵活,但是代码量大,存在相互重复的代码;声明式事务管理比编程式事务管理更为灵活。

编程式事务管理需要自己手动写代码实现事务的功能。声明式事务管理只需要配置文件的设置即可或者是结合注解共同使用。

本次,我只解析声明式事务管理。并且,本次例子建立在ssh框架之上的应用,如果没有搭建好的,可以参考

一、声明式事务管理(纯spring配置文件)

  1、搭建好相关的ssh框架

  2、配置声明式事务管理的spring的配置文件:applicationContext.xml,具体请参考代码:

    解析:

    tx:advice假定是handler(代理),这个handler需要引用一个transactionManager(事务管理器)。

    定义一个bean作为事务管理对象,添加一个class属性,值需要为hibernate5.X的版本。

    tx:attributes标签下的子标签有一个tx:method中的name属性是dao中的方法名,一般来说是add(增)delete(删)modify(改)query(查询),查询一般设置只读。这里使用通配符以适应不用的命名规则。propagation设置事务的传播行为,一般设置为默认值REQUIRED。

 

    aop:config下的aop:pointcut标签,顾名思义切面。其中expression设置是哪里需要添加事务管理,也就是AOP中的切面。比如说:开启事务,提交事务,关闭session等这些通用的相同的代码,把他们设置为一个切面。免去重复书写。本例在dao包下的所有方法进行添加事务管理,也就是在dao包所有的类都不需要做开启事务,提交事务,关闭session的事情了,这些事情全部交给transactionManager来做。

最后的aop:advisor标签把tx:advice和aop:pointcut进行连接,实现了声明式事务管理。

 

二、声明式事务管理(配置文件+spring注解)

    1、搭建好相关的ssh框架应用。

    2、编写相关的配置文件:applicationContext.xml  具体请参考如下代码:

 

     3、spring注解:

      ⑴、在类上注解:

         

 

 

      ⑵、在具体的方法上注解:

          

      注意:这些在类上的注解或者是在方法上的注解都是在调用dao层的实现类上写的,即注解需要写在dao的上一层。本例中service调用了dao层,所以注解是写在service层而不是dao层。

 

三、纯配置文件和配置文件+注解区别:

    二者的最大的区别就是耦合性的问题。纯配置文件和spring框架的耦合程度低,而配置文件+注解和spring框架的耦合性程度高,但是代码的可读性较高。

      

 

     

 

转载于:https://www.cnblogs.com/demoMeng/p/5983896.html

你可能感兴趣的文章
CodeForces - 449D Jzzhu and Numbers
查看>>
mysql批量插入更新操作
查看>>
静态代码审查工具FxCop插件开发(c#)
查看>>
创建代码仓库
查看>>
理解裸机部署过程ironic
查看>>
Django 组件-ModelForm
查看>>
zabbix 二 zabbix agent 客户端
查看>>
大数据分析中,有哪些常见的大数据分析模型?
查看>>
Generate SSH key
查看>>
URL中不应出现汉字
查看>>
SSH框架面试总结----1
查看>>
如何防止Arp攻击
查看>>
ClassList 标签的用法
查看>>
小细节:Java中split()中的特殊分隔符 小数点
查看>>
【编程思想】【设计模式】【行为模式Behavioral】中介者模式Mediator
查看>>
后端接口时间戳或者随机数的作用
查看>>
IOS越狱环境搭建
查看>>
tomcat docBase 和 path
查看>>
java默认语法、EL、JSTL表达式,JSTL和struts Tag标签的使用总结
查看>>
复杂度分析
查看>>