重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
spring事务的实现AbstractFallbackTransactionAttributeSource类的computeTransactionAttribute方法中有个判断,如果目标方法不是public,则TransactionAttribute返回null,即不支持事务。
成都创新互联公司是一家集网站建设,汉源企业网站建设,汉源品牌网站建设,网站定制,汉源网站建设报价,网络营销,网络优化,汉源网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。2、方法用final修饰这样的话会导致事务的失效,因为spring事务底层实现使用了代理,aop,通过jdk的动态代理或者cglib,生成了代理类,在代理类中实现了事务功能,如果方法被final修饰,无法重写该方法,也就无法添加事务的功能了
3、方法内部调用下图为例子:
A方法即orderTest
B方法即createOrder()
然后在B方法当中制造一个异常,int count = 1/0,进行测试。
情形一:AB两个service
下图为例子:
情形二:同一个service
下图为例子:
5、数据库引擎是MyISAM的话也是不支持事务的。 6 try catch手动捕获异常这种情况也是分两种。
第一种捕获了异常,但是没有throw,是不会回滚的。
下图为例子:
第二种捕获了异常,并且throw了异常,会回滚。
但是这个throw的异常,必须是运行时异常才可以。
@Transcation 默认只回滚 (JVM级别)抛出RuntimeException 及Error异常的事务
下图为例子:
参考文章:https://www.jb51.net/article/256104.htm
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧