spring事务的介绍

理解事务
    ACID
原子性:事务是由一个或者多个活动所组成的一个工作单元。原子性确保事务中的所有操作
全部发生或者全部不发生,如果一个活动失败了,那么整个事务也就失败并且回滚
一致性:一旦事务完成,系统必须确保它的所有建模的业务必须处于一致的状态
隔离性:每个用户的操作不会与其他用户纠缠到一起,(隔离性涉及锁定到数据库表
或者行)
持久性:一旦事务完成,事务的结果应该被持久化。这样就能从任何奔溃系统中恢复过啦
理解spring对事务管理的支持
    如果应用程序的事务跨了多个资源,那么spring会用第三方的JTA实现来分布式(XA)事务
选择事务管理器
    spring并不直接管理事务,而是提供了多种事务管理器,他们将事务的管理职责给JTA
或其他持久化机制的平台相关的事务实现。
    jdbc事务
    <bean id="transactionManager" class="... .DataSourceTransactionManager">
<property name="database" ref="database"/> //管理谁
Hibernate事务
   <bean id="hibernatetransactionManager" class="... .HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
JPA事务(java持久化api)
   <bean id="transactionManager" class="... .JpaTransactionManager">
<property name="entityManagerFactory" ref=""> //jpa 实体工厂
声明式事务
    spring 使用tx命名空间和@transactional注解
定义事务属性
    在spring 中,声明式事务通过事务属性来定义的,事务属性包含5个方面
传播行为
   1 PROPAGATION(传播)_MANDATORY(必须遵守的) :该方法必须在事务中运行,如果当前
不存在事务,就会抛出异常
2PROPAGATION_NESTED:如果当前已存在事务,那么该方法在嵌套事务中运行,嵌套的事务
可以独立于当前事务进行单独的提交或者回滚,如果当前事务不存在,那么行为与PROPAGATION
_REQUIRED一样
3PROPAGATION_NEVER:表示当前方法不应该在事务中运行,如果在事务中运行则会抛出异常
4PROPAGTION_NOT_SUPPORTED:表示该方法不应该运行在事务中,当方法运行期间,那么它
将会挂起,如果用jta事务管理器的话,则需要询问事务管理器
5PROPAGATION_REQIRED:如果当前方法必须运行在事务中,如果事务存在,方法将会在该事务
中运行,如果没有,那么就会启动新建事务
6PROPAGETION_REQUIRES_NEW:表示当前方法必须运行在它自己的事务中,一个新的事务
将会被启动,如果当前存在事务,在该方法执行期间,当前事务会被挂起,如果使用jta事务
管理器,那么则需要访问jta事务管理器
7PROPAGATION_SUPPORTS:当前方法不需要事务上下文,如果存在当前事务的话,那么该方法会在
这个事务中运行
隔离级别
    多个事务并行导致的问题
           脏读
  不可重复读
  幻读
读已提交
读未提交
可重复读
串行读
在xml中定义事务
    <tx:advice id="">
   <tx:attributes>
   <tx:method>
<tx:advice> 来声明事务,还需要一个事务管理器,
    <tx:advice transaction-manager ="transactionManager">
<tx:advice>只定义了aop通知,用于把事务边界通知给方法,但是这是事务通知,不是完整的
事务切面,需要定义哪些bean需要被通知,那么我们必须定义一个通知器
   <aop:config>
       <aop:advisor>
       <pointcut="表达式"> 切点 就是什么时候执行事务
advice-ref="txadvice"
定义注解驱动的事务
    <tx:annotation-driven>
    
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计,皆可应用在项目、毕业设计、课程设计、期末/期/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值