龙岗区做网站,杭州做网站外包公司哪家好,实名认证域名可以做电影网站吗,厂房出租做推广什么网站好1. 事务问题概述
事务问题主要来源于数据库#xff0c;与数据库事务紧密相关。事务的四大特性#xff08;ACID#xff09;#xff1a; 原子性#xff08;Atomicity#xff09;#xff1a;事务要么完全执行#xff0c;要么完全不执行。一致性#xff08;Consistency与数据库事务紧密相关。事务的四大特性ACID 原子性Atomicity事务要么完全执行要么完全不执行。一致性Consistency事务执行前后数据库保持有效状态。隔离性Isolation并发事务相互不干扰。持久性Durability事务提交后其结果对数据库的影响是持久的。
2. Transactional注解
Transactional是Spring框架提供的事务管理注解。它依赖于数据库的事务能力不支持事务操作的数据库或中间件将无法使用。
3. Transactional的使用
可以用于类、接口或方法。官方不推荐用于接口因为AOP操作可能导致失效。如果类和方法同时标注以方法的配置为准。
4. Transactional注解的参数
事务传播行为propagation控制事务的创建和加入方式。 REQUIRED默认值加入现有事务或创建新事务。REQUIRES_NEW总是创建新事务挂起现有事务。NESTED嵌套事务。MANDATORY必须在现有事务中运行。NEVER不能在事务中运行。NOT_SUPPORTED不支持事务。SUPPORTS支持事务也可以非事务方式运行。 事务隔离级别isolation与数据库隔离级别一致。 DEFAULT使用数据库默认隔离级别。READ_UNCOMMITTED读未提交。READ_COMMITTED读已提交。REPEATABLE_READ可重复读。SERIALIZABLE串行化。 超时时间timeout事务完成的最长时限。readOnly指定事务是否为只读。rollbackFor指定触发事务回滚的异常类型。noRollbackFor指定不触发回滚的异常类型。
5. Transactional与AOP
AOP面向切面编程用于分离横切关注点。Spring AOP使用代理模式实现包括JDK动态代理和CGLIB代理。
6. Transactional的工作原理
解析事务属性。生成代理对象包含事务拦截器。事务拦截器管理事务的开启、执行和提交/回滚。
7. Transactional失效情况
自调用同一类内部方法调用不会触发代理逻辑。非public方法代理只能拦截public方法。配置不正确未启用注解驱动的事务管理。