事务作用:在数据层保障一系列的数据库操作的一致完整性。
Spring注解式事务可以添加在业务层接口中而不添加到业务层实现类中,降低耦合。注解式事务可以添加到业务方法上表示当前方法开启事务,也可以添加到接口上表示当前接口所有方法开启事务。
1.注入platformtransactionalmanager bean
2.在Spring配置类中使用注解@EnableTransactionManagement开启事务驱动
3.使用声明式事务@transactional 即可开启事务。也可以使用tx命名空间的给予aop的xml配置方式的事物控制。spring还提供了transactionalmanager实现对于事物的支持,显式的使用流程控制开启事物。一般来说,ssm中会使用aop和注解@transactional实现事物的管理。
事务的几种特性。
1保障原子性,即一个事务应该保证其操作的完整,要么全成功,要么就是全失败。题外话,在多线程技术原子类atomicInteger......等线程安全的类,底层采用自旋锁,相较于synchronized,lock这种保证原子性的重锁,不保证原子性。自旋采用比较并提交的方式,一定程度的保证其县城安全。
2.保证一致性。事务的一致性是指事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处以一致性状态。
3.保证隔离性。事务的隔离性是指在并发环境中,并发的事务是互相隔离的,一个事务的执行不能被其它事务干扰。
4.保证持久性。事务的持久性是指事务一旦提交后,数据库中的数据必须被永久的保存下来。