申明式事务工作详解版权声明
原创spring有两种类型的交易:
1,编程事务:控制程序中的事务启动、执行和提交;(不推荐,所以我不会在这里解释太多)
2,声明性事务:中。Spring在配置文件中配置事务,而不在程序中写入代码;(推荐)
我对“陈述性”的理解是:Spring这样的规则在配置文件中定义,
该规则可以指定在执行时添加事务控制的类和方法,
当这些类的这些方法被执行时,隐式添加事务以启动、执行、提交或回滚的代码(当然我们看不到)
声明性事务以两种不同的方式编写:
2.1、xml配置文件
2.2、注解
让我们首先解释以下内容xml如何在配置文件中配置声明性事务管理。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
true
true
org.hibernate.dialect.MySQL5Dialect
false
update
news/entity/News.hbm.xml
我相信这段代码对于我们这些初学者来说并不容易理解,让我来给你分析一下:
1,创建事务管理器
2,配置通知
属性
必须
默认值
描述
name
是
要切入的方法的名称,可以使用通配符。
propagation
不是
REQUIRED
事务通信行为
isolation
不是
DEFAULT
事务隔离级别
timeout
不是
-1
事务超时时间(秒)
read-only
不是
false
事务是只读的吗?
rollback-for
不是
将触发回滚。 Exception(s)
; 用逗号分隔。 如: news.serviceImpl
no-rollback-for
不是
不 已触发回滚 Exception(s)
; 用逗号分隔。 如: news.serviceImpl
3、配置切线表达式, 并且让 tx与切线表达式组合
让我解释一下execution( news.service..*(..))"中几个通配符的含义:
第一个 —— 通配 任何返回值类型 第二个 —— 通配 包news.service下的任意class 第三个 * —— 通配 包news.service下的任意class任何方法 第四个 .. —— 通配 方法可以具有0一个或多个参数
综上:包news.service下的任意class的具有任何返回值类型、任意数目参数和任意名称的方法
做到这里xml该方法的事务管理基本完成,最后一步是导入其相关的缺失包(必须导入这些包才能进行任何形式的事务管理)
如果你没有这些包,你可以去网站下载: http://pan.baidu.com/s/1eSlyY1G
最后,让我们讨论注释形式的声明性事务管理。
注释形式的声明性事务管理,只要applicationContext.xml在此文档中添加一句话
<tx:annotation-driven transaction-manager="transactionManager"/>
您可以从上面的代码中放入以下字符串。xml去掉了,
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除