spring boot- 异步@Async + 事务@Transactional 组合使用测试
发布日期:2021-06-29 22:26:33 浏览次数:2 分类:技术文章

本文共 960 字,大约阅读时间需要 3 分钟。

文章目录

spring boot- 异步@Async + 事务@Transactional 组合使用测试

demo1测试: @Transactional 方法中调其他服务的@Async方法

@Slf4j@Servicepublic class TestService {
@Autowired SysRoleRepository sysRoleRepository; @Autowired TestAsyncService testAsyncService; @Transactional(rollbackFor = Exception.class) public void biz() {
log.info("biz start!"); SysRolePO sysRolePO = new SysRolePO(); sysRolePO.setRoleName("xxx111"); sysRolePO.setRoleDesc("descXXX"); sysRoleRepository.save(sysRolePO); testAsyncService.asyncFunc(); log.info("biz end!"); }}
@EnableAsync@Slf4j@Servicepublic class TestAsyncService {
@Async public void asyncFunc() {
log.info("asyncFunc start!"); try {
Thread.sleep(5000); } catch (InterruptedException e) {

注意:经过测试,使用@Async 注解,确保启动类 有@EnableAsync注解才生效,或使用的当前类有!否则还是完全是个同步方法(发生异常会回滚!),

经过测试,在 @Async 注解 使用正常情况下,asyncFunc方法抛出的异常不影响调用它的方法的事务回滚!

转载地址:https://docker.blog.csdn.net/article/details/111149599 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:spring boot- @EnableAsync和@Async(Spring boot 注解@Async不生效 无效 不起作用)
下一篇:Apollo-本地开发模式(不接入配置中心进行本地开发 env=Local)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月29日 14时23分11秒