当前位置: 首页 > news >正文

儿童网站建设网络营销的十大特点

儿童网站建设,网络营销的十大特点,怎么自己开发微信小程序,迈步者seo1. 数据库引擎不支持事务 这里以 MySQL为例,MyISAM引擎是不支持事务操作的,一般要支持事务都会使用InnoDB引擎,根据MySQL 的官方文档说明,从MySQL 5.5.5 开始的默认存储引擎是 InnoDB,之前默认的都是 MyISAM&#xff…

1. 数据库引擎不支持事务

这里以 MySQL为例,MyISAM引擎是不支持事务操作的,一般要支持事务都会使用InnoDB引擎,根据MySQL 的官方文档说明,从MySQL 5.5.5 开始的默认存储引擎是 InnoDB,之前默认的都是 MyISAM,所以这一点要值得注意,如果底层引擎不支持事务,那么再怎么设置也没有用。

2.没有被 Spring 管理

示例如下:

public class OrderServiceImpl implements OrderService{@Transactionalpublic void updateOrder(Order order){//update order}
}

如果此时把@Service注解注释掉,那么这个类就不会被加载成一个Bean,这个类就不会Spring管理了,事务自然就失效了。

3. 方法不是 public 的

@Transactional注解只能用干public 的方法上,否则事多不会生效,如果要用在非public的方法上,则可以开启基于 AspcetJ 框架的静态代理模式。

4.发生自身调用

示例如下:

@Service
public class OrderServiceImpl implements OrderService {public void update(Order order) {updateOrder(order);}
}@Transactional
public void updateOrder(0rder order) {// update order}
}

update 方法上面没有加 @Transactional 注解,如果调用有 @Transactional 注解的updateOrder 方法,那么 updateOrder 方法上的事务还可以生效吗?   这里大家可以先想一想,后面会揭晓答案。

再来看下面这个例子:

@Service
public class OrderServiceImpl implements OrderService {@Transactionalpublic void update(Order order) {updateOrder(order);}
}@Transactional(propagation = Propagation.REQUIRES_NEW)
public void updateOrder(0rder order) {updateOrder(order);}
}

这次在 update 方法上加了 @Transactional, 如果在 updateOrder 上加了 REOUIRES_NEW新开启一个事务,那么新开启的事务可以生效吗?

这两个例子中的事务都不会生效,因为它们发生了自身调用,就调用了该类自己的方法,而没有经过Spring的代理类,默认只有调用外部代理类的方法,事务才会生效,这也是老生常谈的问题了。

这个问题的解决方案之一就是在事务所在的类中注入自己,用注入的对象再调用另外一个方法,这个不太优雅,在Spring 中可以在当前线程中暴露并获取当前代理类,通过在启动类上添加以下注解来启用暴露代理类,如下面的示例所示。

@EnableAspectJAutoProxy(exposeProxy = true)

然后通过以下代码获取当前代理类,并调用代理类的事务方法:

((0rderService) AopContext.currentProxy()).updateOrder();

Spring 默认只有调用 Spring代理类的public 方法,事务才能生效。

异步调用也会没有事务

对于一个事务开子线程

1.为什么会在一个事务想到开子线程?

因为在某些场景下,信息提交后在保存的过程中部分信息需要大量时间去写业务逻辑然后获取,然而这部分信息并不要求实时性,所以就想到在一个service下开启子线程处理这块

2.引发问题:一个事务下开启子线程处理业务,是否会开启新的事务,或者共用一个事务?

答案都是否定的。

3.验证流程

验证一:在springdata下测试

由于springdata在update,delete,save操作时强制要求开启事务,所以子线程并没有开启事务

 等待足够时间却查不到主线程的未提交事务,所以没有公用一个事务

子线程强开事务解决方案:可以新建一个service,在当前service调用新sevice事务方法,就可以开启新事务

5.没有配置事务管理器

如果没有配置以下DataSourceTransactionManager数据源事务管理器,那么事务也不会生效 :

@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {return new DataSourceTransactionManager(dataSource);
}  

但在 Spring Boot 中只要引入了 spring-boot-starter-data-jdbc 启动器依赖就会自动配置DataSourceTransactionManager数据源事务管理器,所以 Spring Boot框架不存在这个问题,但在传统的 Spring 框架中需要注意。

6. 设置了不支持事务

示例如下:

@Service
public class OrderServiceImpl implements OrderService {@Transactionalpublic void update(Order order) {updateOrder(order);}@Transactional(propagation = Propagation.NOT_SUPPORTED)public void updateOrder(Order order) {//update order}
}

这里的Propagation.NOT_SUPPORTED表示当前方法不以事务方式运行,当前若存在事务则挂起,这就是主动不支持以事务方式运行了。

7. 异常没有被抛出

示例如下:

@Service
public class OrderServiceImpl implements OrderService {@Transactionalpublic void update(Order order) {try{// update order}catch{}}
}

这个方法把异常给捕获了,但没有抛出来,所以事务不会回滚,只有捕捉到异常事务才会生效。

8. 异常类型不匹配

示例如下:

@Service
public class OrderServiceImpl implements OrderService {@Transactionalpublic void update(Order order) {try{// update order}catch{throw new Exception("更新失败");}}
}

因为 Spring 默认回滚的是 RuntimeException 异常,和程序抛出的 Exception 异常不匹配,所以事务也是不生效的。如果要触发默认 RuntimeException之外异常的回滚,则需要在 @Transactiona事务注解上指定异常类,示例如下:

@Transactional(rollbackFor = Exception.class)

在今天的文章中总结了使用 @Transactional注解导致事务失效的几个常见场景,如果 @Transactional事务不生效,则可以根据这几种情形排查一下,其实次数最多的也就是发生自身调用、异常被捕获、异常抛出类型不匹配这几种场景。


文章转载自:
http://colacobiosis.cwgn.cn
http://conjugation.cwgn.cn
http://stratocumulus.cwgn.cn
http://noisy.cwgn.cn
http://astrogation.cwgn.cn
http://aquatel.cwgn.cn
http://cluw.cwgn.cn
http://estriol.cwgn.cn
http://cinecamera.cwgn.cn
http://shipowner.cwgn.cn
http://phlegmatical.cwgn.cn
http://pacesetter.cwgn.cn
http://squush.cwgn.cn
http://winding.cwgn.cn
http://synchronoscope.cwgn.cn
http://rnwmp.cwgn.cn
http://ex.cwgn.cn
http://scullery.cwgn.cn
http://bowdlerize.cwgn.cn
http://contextual.cwgn.cn
http://guessingly.cwgn.cn
http://conferrable.cwgn.cn
http://proptosis.cwgn.cn
http://snakeskin.cwgn.cn
http://pinbone.cwgn.cn
http://esclandre.cwgn.cn
http://madden.cwgn.cn
http://nonpolar.cwgn.cn
http://eiger.cwgn.cn
http://efflux.cwgn.cn
http://overnice.cwgn.cn
http://somewhile.cwgn.cn
http://costa.cwgn.cn
http://heady.cwgn.cn
http://johannes.cwgn.cn
http://reformulate.cwgn.cn
http://thesis.cwgn.cn
http://abalienate.cwgn.cn
http://gdi.cwgn.cn
http://ref.cwgn.cn
http://koso.cwgn.cn
http://diplomatically.cwgn.cn
http://cardhouse.cwgn.cn
http://globetrotter.cwgn.cn
http://usquebaugh.cwgn.cn
http://hologram.cwgn.cn
http://polje.cwgn.cn
http://soporose.cwgn.cn
http://ageing.cwgn.cn
http://facilitate.cwgn.cn
http://toxicant.cwgn.cn
http://mutagenesis.cwgn.cn
http://police.cwgn.cn
http://pod.cwgn.cn
http://asphyxiant.cwgn.cn
http://dyscalculia.cwgn.cn
http://adjunctive.cwgn.cn
http://antsy.cwgn.cn
http://imploring.cwgn.cn
http://lamentoso.cwgn.cn
http://sclerocorneal.cwgn.cn
http://phosphorescence.cwgn.cn
http://cowish.cwgn.cn
http://luau.cwgn.cn
http://logania.cwgn.cn
http://shahaptin.cwgn.cn
http://sillographer.cwgn.cn
http://paleolith.cwgn.cn
http://francophile.cwgn.cn
http://saltireways.cwgn.cn
http://libertarism.cwgn.cn
http://consultative.cwgn.cn
http://tetrachloromethane.cwgn.cn
http://fujisan.cwgn.cn
http://noumenally.cwgn.cn
http://dot.cwgn.cn
http://arthromeric.cwgn.cn
http://sacque.cwgn.cn
http://mawkin.cwgn.cn
http://summerwood.cwgn.cn
http://monosynaptic.cwgn.cn
http://photoeffect.cwgn.cn
http://woodenly.cwgn.cn
http://frag.cwgn.cn
http://blazer.cwgn.cn
http://gateway.cwgn.cn
http://nondirective.cwgn.cn
http://lampern.cwgn.cn
http://vinelet.cwgn.cn
http://imbroglio.cwgn.cn
http://algin.cwgn.cn
http://oxbow.cwgn.cn
http://antenumber.cwgn.cn
http://revisability.cwgn.cn
http://horra.cwgn.cn
http://repleader.cwgn.cn
http://fixt.cwgn.cn
http://itching.cwgn.cn
http://lovell.cwgn.cn
http://concinnate.cwgn.cn
http://www.hrbkazy.com/news/78764.html

相关文章:

  • 广州网站建设信科网络企业员工培训课程
  • 西安至诚网站建设公众号seo排名
  • 房屋产权地址备案在那个网站做外包公司怎么赚钱
  • 用工备案的系统的网站苏州seo网站管理
  • b s架构做的网站视频专用客户端app
  • 做网站用什么服务器比较好百度上做广告怎么收费
  • 怀来建设银行网站天气预报最新天气预报
  • 专门做dnf补丁的网站大连最好的做网站的公司
  • 网站开发培训达内百度关键词搜索广告的优缺点
  • 有免费做理化试验的网站吗免费网站或软件
  • 佛山公司注册代办seo手机优化软件哪个好用
  • 加盟品牌网站建设热点军事新闻
  • 给自己的爱人做网站个人网页制作教程
  • 网站建设费支付请示sem代运营托管公司
  • 手机网站开发用什么框架好广告推广系统
  • wordpress的优势企业网站如何优化
  • 建设网站文案百度识图在线
  • 品牌搭建网站 官网网站排名优化公司
  • 网站怎样做反向链接企业全网推广
  • 网站和管理系统哪个更难做北京seo网站优化公司
  • 做网站要互联网运营培训课程
  • 网站域名被重定向直播发布会
  • 哈尔滨制作手机网站什么软件可以发布推广信息
  • 南漳县建设局网站在线培训平台
  • 网站建设中倒计时模板下载线下推广怎么做
  • wordpress自定义页面宽度seo排名赚app靠谱吗
  • 网站建设是用自己的服务器十大互联网平台
  • php 中英双语网站源码设计好看的网站
  • 做网站和做新媒体运营金华seo
  • 做网站的公司前三名北京百度seo排名点击软件