聊聊你眼中的 spring 的事务是怎么样的?
聊了好久的关于数据库,MYSQL 的事务,今天我们进行新的一个标题领域,是关于 spring 的,
对,就是 spring 的事务。
spring 事务
本质上是基于数据库事务的包装, 经过 spring 事务的简化包装,使得我们将开启事务,运行事务,结束事务,回滚事务更加的便捷和快速。
其中 spring 主要是支持对于事务的管理功能如果要使用 spring 的事务,首先是当前使用对接的数据库 ,本身是支持事务的(MySQL 是支持事务的)
JDBC 数据库的驱动
如果我们需要在项目中,使用对接数据库的进行增删改查, crud 的操作,这种操作肯定会用到数据库的事务,进行事务处理, 如果是原生的处理方式,就是 MySQL 的 JDBC 的驱动,在程序中去加载这个驱动,然后将数据库和我们的程序链接在一起,进行事务处理。
JDBC 的加载:
建立数据库的连接,后两个参数分别为账号和密码:
开启事务
数据库执行 CRUD 操作
提交或者回滚事务
关闭连接
spring 管理事务
spring 事务功能 ,包装好了底层的 JDBC 的驱动事务功能,也就是通常上面的 第三部到最后的功能,
一般要利用 spring 事务,需要在类或者方法上,加上注解 @Transactional 注解, 当前 spring 的事务中,开启事务,
这些都是底层 spring 的框架 AOP 代理字段完成的,
事务的运行过程
大家都知道 spring 是基于 IOC 容和 AOP 来进行管理器 bean 对象,加上这个 @Transactional 注解,spring 容器启动的时候会扫描整个类中具有标识注解的类和方法,并为这些个方法创建代理对象,其中也进行相应的参数配置,从而对事务进行管理
spring 事务分类
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/b1142497dd723f156b4d2d018】。文章转载请联系作者。
评论