Spring事务源码解析小结

Spring事务源码解析小结

ID:39468349

大小:56.00 KB

页数:5页

时间:2019-07-04

Spring事务源码解析小结_第1页
Spring事务源码解析小结_第2页
Spring事务源码解析小结_第3页
Spring事务源码解析小结_第4页
Spring事务源码解析小结_第5页
资源描述:

《Spring事务源码解析小结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、TransactionInterceptor继承TransactionAspectSupport通过事务TransactionInterceptor事务拦截器生成目标Bean的代理对象TransactionInterceptor事务拦截器(声明式事务)finalTransactionAttributetxAttr=getTransactionAttributeSource().getTransactionAttribute(invocation.getMethod(),targetClass);//拦截到方法的事务属性txAttr如:PROPAGATION_RE

2、QUIRED,ISOLATION_DEFAULTSpring拦截器默认事务属性PROPAGATION_REQUIRED,ISOLATION_DEFAULTfinalStringjoinpointIdentification=methodIdentification(invocation.getMethod());通过ClassUtils.getQualifiedMethodName(method);获取拦截到的方法名称//在切面上添加事务的方法jdk动态代理publicObjectinvoke(finalMethodInvocationinvocation)th

3、rowsThrowable{//Workoutthetargetclass:maybenull.//TheTransactionAttributeSourceshouldbepassedthetargetclass//aswellasthemethod,whichmaybefromaninterface.ClasstargetClass=(invocation.getThis()!=null?invocation.getThis().getClass():null);//Ifthetransactionattributeisnull,t

4、hemethodisnon-transactional.finalTransactionAttributetxAttr=getTransactionAttributeSource().getTransactionAttribute(invocation.getMethod(),targetClass);//拦截到方法的事务属性txAttr如:PROPAGATION_REQUIRED,ISOLATION_DEFAULTfinalStringjoinpointIdentification=methodIdentification(invocation.getMeth

5、od());if(txAttr==null

6、

7、!(getTransactionManager()instanceofCallbackPreferringPlatformTransactionManager)){//StandardtransactiondemarcationwithgetTransactionandcommit/rollbackcalls.TransactionInfotxInfo=createTransactionIfNecessary(txAttr,joinpointIdentification);//包括(txAttr,拦截到的方法join

8、Point,transactionStatus)调用底层Objecttransaction=doGetTransaction();开启事务。ObjectretVal=null;try{//Thisisanaroundadvice:Invokethenextinterceptorinthechain.//Thiswillnormallyresultinatargetobjectbeinginvoked.retVal=invocation.proceed();}catch(Throwableex){//targetinvocationexceptioncomplet

9、eTransactionAfterThrowing(txInfo,ex);throwex;}finally{cleanupTransactionInfo(txInfo);}commitTransactionAfterReturning(txInfo);//调用父类TransactionAspectSupport(含transactionManager,transactionAttributeSource)//this.transactionManager.commit(txInfo.getTransactionStatus());returnretVal;}el

10、se{//It'saCa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。