9.3.5
所需的传播行为
图最9-3
新
{
addressService.save(user.getAddress()); //将在同一个事务内执行
}赶上(RuntimeException的E)
userService.countAll());
Assert.assertEquals(1,addressService.countAll());
为如下形式:
java的代码:
Java的代码
尝试{
userService.save(用户);
Assert.fail();
}赶上(RuntimeException的E) {
}
Assert.assertEquals(0,userService.countAll());
Assert.assertEquals(0,
RequiresNew传播行为
图最9-5
TransactionTemplate的=
TransactionTemplate的=
userService.countAll());
Assert.assertEquals(1,
新
userService.countAll());
Assert.assertEquals(1,addressService.countAll());
为如下形式:
java的代码:
Java的代码
尝试{
userService.save(用户);
Assert.fail();
}赶上(RuntimeException的E) {
}
Assert.assertEquals(0,userService.countAll());
Assert.assertEquals(1,
所需的+支持传播行为
图最9-7
需要+ NotSupported传播行为
图最9-9
需要+强制性传播行为
图最9-11
所需的+决不传播行为
图最9-13
需要+嵌套的传播行为
图最9-15嵌套+嵌套的传播行为
嵌套和RequiresNew的区别:
1,RequiresNew每次都创建新的独立的物理事务,而嵌套只有一个物理事务;
2,
RequiresNew由于都是全新的事务,所以之间是无关联的;
3,嵌套使用JDBC
正确的事务只读设置
图最9-17
交易带的定义[......]没有被标记为
春天的事务之9.3编程式事务
226
积分:700
发表时间:10小时前最后修改:9小时前引用收藏
代理方式下的自我调用
图最9-18
修改TransactionProxyFactoryBean的配置定义,添加exposeProxy属性为真;
2,在业务方法内通过代理对象调用相应的事务方放,如
使用这种方式属于侵入式,不推荐使用,除非必要。
图9-19代理方式下的自我调用
春天的事务管理,图解事务传播行为
最新推荐文章于 2022-01-18 08:49:35 发布