1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
=============================Spring事物处理==================================
Spring配置文件中关于事物配置总是由三部分组成,分别是DataSource,TransactionManager和
代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。
Spring中事物JDBC配置:
1
.DataSource:
2
.TransactionManager
3
.代理机制:
1
).bean和代理:
a.每一个Bean有一个代理
b.所有Bean共享一个代理基类
2
).使用拦截器:
3
).使用Tx标签配置的拦截器
4
).全注解配置
需要注意的地方:
(
1
) advice(建议)的命名:由于每个模块都会有自己的Advice,所以在命名上需要作出规范,
初步的构想就是模块名+Advice(只是一种命名规范)。
(
2
) tx:attribute标签所配置的是作为事务的方法的命名类型。
如<tx:method name=
"save*"
propagation=
"REQUIRED"
/>
其中*为通配符,即代表以save为开头的所有方法,即表示符合此命名规则的方法作为一个事务。
propagation=
"REQUIRED"
代表支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
(
3
) aop:pointcut标签配置参与事务的类,由于是在Service中进行数据库业务操作,配的应该是包含
那些作为事务的方法的Service类。
首先应该特别注意的是id的命名,同样由于每个模块都有自己事务切面,所以我觉得初步的命名规则因为
all+模块名+ServiceMethod。 而且每个模块之间不同之处还在于以下一句:
expression=
"execution(* com.test.testAda.test.model.service..*.*(..))"
其中第一个*代表返回值,第二*代表service下子包,第三个*代表方法名,“(..)”代表方法参数。
(
4
) aop:advisor标签就是把上面我们所配置的事务管理两部分属性整合起来作为整个事务管理。
|
Spring事物处理
最新推荐文章于 2024-11-01 11:48:13 发布