Spring整合注解随笔7

37 阅读1分钟

Spring-声明式事务

通过注解的方式告诉框架,怎么做由框架做

编程式: 通过代码的方式

声明式事务优点:

1.代码量小

2.缺点:封装的太多

添加配置

image.png

自动配置数据源

image.png

image.png

image.png

以后操作数据库:

1.导入包

2.配置数据库连接信息

3.可以直接使用DataSource

准备一个Bean包

image.png

创建Dao

image.png

image.png

事务:

1.开启事务管理

@EnableTransactionManagement

image.png

image.png

事务细节

事务管理器的作用:控制事务的获取,提交,回滚

底层默认使用哪个事务管理器?默认使用的是JdbcTransactionManager

原理:

1.事务管理器TransactionManager:控制提交和回滚

2事务拦截器(是一个切面aop):TransactionInterceptor,控制何时提交和回滚

image.png

image.png

image.png

2.propagation:传播行为 !!!!!

3.isolation:隔离级别 !!!!

image.png

image.png

image.png

4.timeout(同timeoutStirng):超时时间,控制事务的超时时间,单位是s

一旦超过时间,事务就会回滚

image.png

超时时间的计算,是从方法的进入到最后一次Dao操作的时间(最后一次操作数据库的结束时间)

5.readonly 只读优化

如果readonly是true,则打开优化。

image.png

6.rollbackFor:指明哪些异常需要回滚

并不是所有异常都会触发事务回滚

异常有两类:

运行时异常(unchecked exception)非受检异常

编译时异常(checked exception)受检异常

Spring回滚的默认机制:

运行时异常回滚

编译时异常不回滚

****rollbackFor可以指定哪些异常需要回滚

image.png

最终版:

image.png

6.noRollbackFor:指明哪些异常不需要回滚

image.png