大家分层架构 事务

1:搭建分层架构

事务:

什么是事务?

是一个不可分割的逻辑单元, 对于 N条操作,要么都提交,要么都不提交


事务的四大特性:

原子性:事务中操作不可再分

一致性:要么都提交,要么都不提交

隔离性:各个事务之间互不干扰

持久性:事务操作会被永久操作

start transaction

begin transaction

commit

rollback


事务四种隔离级别和七种传播行为:

隔离级别: 脏读 重复读 幻读 读已提交(READ_COMMITED)

ISOLATION_READ_UNCOMMITTED 读未提交 33k--->平平 ---> 38k

ISOLATION_READ_COMMITTED 读已提交 cmy--->娶妻生子 脏读

ISOLATION_REPEATABLE_READ 可重复读 重复的查询语句 脏读 不可重复读
begin transaction

insert into user values('张三',123);
select * from user
delete from user where name='张三'
select * from user

commit;

ISOLATION_SERIALIZABLE 串行化 脏读 重复读 幻读


传播行为:在使用事务机制操作的情况下,如果要做的操作 七个选项

PROPAGATION_REQUIRED 以事务的方式进行操作,如果当前事务存在,则使用当前事务。如果不存在,则创建一个新事务

PROPAGATION_REQUIRES_NEW
以事务的方式进行操作,如果当前事务存在,挂起当前事务。并创建一个新事务。

PROPAGATION_SUPPORTS
判断是否使用的是事务方式操作,使用该事务,如果不是 以非事务的方式操作

PROPAGATION_NOT_SUPPORTED
非事务的方式操作,如果存在当前存在事务,则挂起当前事务。以非事务的方式操作

PROPAGATION_MANDATORY
一定要以事务进行操作,如果不存在事务,则抛出异常

PROPAGATION_NEVER
非事务的方式进行操作,如果存在事务,则抛出异常

PROPAGATION_NESTED
事务操作,判断当前事务是否存在,如果存在,则在当前事务中生成一个嵌套着的事务,如果不存在作用于 PROPAGATION_REQUIRED 相同

例子:转账


AOP:
编程式AOP: ProxyFactory 实例 setTarget setAvice

声明式AOP: ProxyFactoryBean
target属性-->代理对象
advice

自动顾问代理生成器
AspectJ 注解的方式

Aspect Xml节点的方式


事务增强:AOP

编程式事务:TransactionTemplate

声明式事务: tx节点定义通知
aop实现切面

posted @ 2018-05-16 12:19  亲信ABC  阅读(232)  评论(0编辑  收藏  举报