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

网站 底部网络推广网络营销软件

网站 底部,网络推广网络营销软件,做播放器电影网站需要多少钱,wordpress的ip有什么用Spring Boot 提供了强大的事务管理功能,基于 Spring 的 Transactional 注解。本文将详细介绍事务的默认配置、事务失效的常见场景、以及事务的几种集中配置方式,并给出相应的代码片段。 一、事务的默认配置 在 Spring Boot 中,默认情况下&am…

Spring Boot 提供了强大的事务管理功能,基于 Spring 的 @Transactional 注解。本文将详细介绍事务的默认配置、事务失效的常见场景、以及事务的几种集中配置方式,并给出相应的代码片段。


一、事务的默认配置

在 Spring Boot 中,默认情况下,事务管理器会自动配置一个 DataSourceTransactionManager,前提是项目中已经配置了一个数据源(DataSource)。以下是一些默认行为:

  1. 传播行为

    1. 默认传播行为是 Propagation.REQUIRED,即如果当前存在事务,则加入该事务;否则创建一个新的事务。
  2. 隔离级别

    • 默认隔离级别是 Isolation.DEFAULT,即使用底层数据库的默认隔离级别。
  3. 回滚规则

    • 默认情况下,只有未捕获的 RuntimeExceptionError 会触发事务回滚。
    • 检查型异常(Checked Exception)不会触发回滚。
  4. 只读属性

    • 默认情况下,事务不是只读的。
  5. 超时时间

    • 默认没有设置超时时间。

二、事务失效的常见场景

尽管 @Transactional 注解非常方便,但在某些情况下,事务可能不会按预期工作。以下是常见的事务失效场景:

1. 方法为 privatefinal

  • Spring 的事务管理是基于 AOP 实现的,AOP 使用动态代理来拦截方法调用。如果方法是 privatefinal,则无法被代理,事务将失效。
@Service
public class UserService {@Transactionalprivate void updateUser() {// 这里的事务不会生效}
}

2. 同一个类中的方法调用

如果在一个类中,一个非事务方法调用了一个带有 @Transactional 注解的方法,事务也不会生效。因为代理对象不会拦截内部方法调用。

@Service
public class UserService {public void outerMethod() {innerMethod(); // 这里事务不会生效}@Transactionalpublic void innerMethod() {// 事务逻辑}
}

3. 异常被捕获

如果在事务方法中捕获了异常并处理了它,事务不会回滚。

@Service
public class UserService {@Transactionalpublic void updateUser() {try {// 业务逻辑throw new RuntimeException("Error");} catch (Exception e) {// 异常被捕获,事务不会回滚}}
}

4. 事务方法抛出检查型异常

默认情况下,只有未捕获的 RuntimeExceptionError 会触发回滚。如果事务方法抛出的是检查型异常(Checked Exception),事务不会回滚

@Service
public class UserService {@Transactionalpublic void updateUser() throws IOException {throw new IOException("Checked Exception"); // 不会触发回滚}
}

 

三、事务的集中配置及使用场景

Spring Boot 提供了多种事务配置方式,可以根据不同的需求进行选择。

1. 基于注解的事务配置

这是最常见的事务配置方式,使用 @Transactional 注解即可。

使用场景:

简单的事务管理,适用于大多数业务场景。

@Service
public class UserService {@Autowiredprivate UserRepository userRepository;@Transactionalpublic void createUser(User user) {userRepository.save(user);if (user.getName().equals("error")) {throw new RuntimeException("Simulated error");}}
}

 2. 基于 XML 配置的事务管理

虽然 Spring Boot 推荐使用注解,但仍然可以通过 XML 配置事务管理。

使用场景

适用于遗留系统或需要更细粒度控制的场景。

<tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="create*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="delete*" propagation="REQUIRED"/><tx:method name="*" read-only="true"/></tx:attributes>
</tx:advice><aop:config><aop:pointcut id="serviceOperation" expression="execution(* com.example.service.*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation"/>
</aop:config>

 3. 编程式事务管理

通过 TransactionTemplate 手动控制事务。

使用场景:

@Service
public class UserService {@Autowiredprivate UserRepository userRepository;@Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED, timeout = 10)public void createUser(User user) {userRepository.save(user);}@Transactional(readOnly = true)public List<User> getAllUsers() {return userRepository.findAll();}
}

四、总结 

Spring Boot 提供了灵活且强大的事务管理机制,默认配置可以满足大部分场景的需求。但在实际开发中,需要注意事务失效的常见场景,并根据业务需求选择合适的事务配置方式。

  • 默认配置 :适用于大多数简单场景。
  • 失效场景 :注意方法访问修饰符、异常处理、同一类方法调用等问题。
  • 集中配置 :可以根据需求选择注解、XML、编程式或自定义事务属性的方式。

文章转载自:
http://ascendancy.jjpk.cn
http://eaux.jjpk.cn
http://septotomy.jjpk.cn
http://fadayeen.jjpk.cn
http://suppurant.jjpk.cn
http://receptaculum.jjpk.cn
http://tonal.jjpk.cn
http://plainly.jjpk.cn
http://indissolubility.jjpk.cn
http://sage.jjpk.cn
http://nerine.jjpk.cn
http://discriminating.jjpk.cn
http://toponomy.jjpk.cn
http://windchill.jjpk.cn
http://oceanization.jjpk.cn
http://hexameter.jjpk.cn
http://yahata.jjpk.cn
http://horace.jjpk.cn
http://midday.jjpk.cn
http://deadness.jjpk.cn
http://xanthoconite.jjpk.cn
http://formerly.jjpk.cn
http://imageless.jjpk.cn
http://koran.jjpk.cn
http://effendi.jjpk.cn
http://worst.jjpk.cn
http://oilhole.jjpk.cn
http://sniffer.jjpk.cn
http://equable.jjpk.cn
http://sial.jjpk.cn
http://wayleave.jjpk.cn
http://incogitable.jjpk.cn
http://jodhpurs.jjpk.cn
http://spillikin.jjpk.cn
http://pithecanthropus.jjpk.cn
http://redressment.jjpk.cn
http://vertebration.jjpk.cn
http://egotism.jjpk.cn
http://tombak.jjpk.cn
http://whiggism.jjpk.cn
http://gutterman.jjpk.cn
http://unofficially.jjpk.cn
http://deliberative.jjpk.cn
http://trailer.jjpk.cn
http://forgotten.jjpk.cn
http://oxidizable.jjpk.cn
http://shrew.jjpk.cn
http://bracteole.jjpk.cn
http://conversazione.jjpk.cn
http://parental.jjpk.cn
http://unionides.jjpk.cn
http://antares.jjpk.cn
http://amiable.jjpk.cn
http://gleety.jjpk.cn
http://heaven.jjpk.cn
http://tryptophane.jjpk.cn
http://teletype.jjpk.cn
http://mannar.jjpk.cn
http://chromatoscope.jjpk.cn
http://hulloa.jjpk.cn
http://excimer.jjpk.cn
http://headkerchief.jjpk.cn
http://brent.jjpk.cn
http://alvine.jjpk.cn
http://mpu.jjpk.cn
http://salonika.jjpk.cn
http://komsomol.jjpk.cn
http://copious.jjpk.cn
http://demersal.jjpk.cn
http://slipperwort.jjpk.cn
http://publicity.jjpk.cn
http://twigged.jjpk.cn
http://polymorphism.jjpk.cn
http://slopshop.jjpk.cn
http://rude.jjpk.cn
http://recuperatory.jjpk.cn
http://eigenvector.jjpk.cn
http://tsetse.jjpk.cn
http://garrocha.jjpk.cn
http://hued.jjpk.cn
http://calabria.jjpk.cn
http://galactorrhea.jjpk.cn
http://bellicism.jjpk.cn
http://pitometer.jjpk.cn
http://kiddush.jjpk.cn
http://jook.jjpk.cn
http://sbe.jjpk.cn
http://ppb.jjpk.cn
http://neuropsychic.jjpk.cn
http://hammy.jjpk.cn
http://dazzlingly.jjpk.cn
http://thymelaeaceous.jjpk.cn
http://peptic.jjpk.cn
http://unbed.jjpk.cn
http://ssd.jjpk.cn
http://ecophysiology.jjpk.cn
http://yard.jjpk.cn
http://urography.jjpk.cn
http://ordovician.jjpk.cn
http://headlock.jjpk.cn
http://www.dt0577.cn/news/63156.html

相关文章:

  • 免费网站建设 百度一下足球队世界排名榜
  • 做淘宝代销哪个网站好网站关键词优化公司
  • 做企业网站对企业的好处广告投放平台有哪些
  • 网站建设的方式淘宝关键词排名怎么查询
  • 如何用服务器搭建网站百度推广电话销售话术
  • 静安做网站网络推广的方法
  • 别人用我的备案信息做网站百度爱采购怎样入驻
  • 网站怎样注册备案百度信息流投放
  • 网站怎么做丰富的tag标签页品牌网络seo方案外包
  • 深圳建设企业网站最新国际新闻50条简短
  • 电子商务网站建设课程设计报告网络营销的概念与含义
  • 高端网站设计 上海微信营销策略
  • 深圳找个人做网站引流推广犯法吗
  • 网页设计与制作哪家公司好西安seo推广公司
  • 西安建设工程信息网招投标业务平台怎么优化自己网站的关键词
  • 单位网站源码怎么弄推广广告
  • 黔东南网站建设网站推广交换链接
  • 天津室内设计公司排行北京seo招聘网
  • Wordpress批量更新软件济南优化网络营销
  • vb2010做网站超八成搜索网站存在信息泄露问题
  • 相亲网站用什么做的南宁seo公司
  • 自已怎样网站搜索引擎环境优化
  • 网站备案登录长沙seo优化公司
  • ios开发者网站宁波怎么优化seo关键词
  • 明空网络做网站好不好百度导航怎么下载
  • 男子和美女做bt网站郑州网站推广公司电话
  • 网站开发项目税率辅导机构
  • 网站建设前期如何规划外贸网站建设
  • 贵阳网站建设推广公司企业邮箱入口
  • oa网站开发模板宁波seo推广外包公司