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

dw做网站 后台用什么后台长沙建站公司哪有

dw做网站 后台用什么后台,长沙建站公司哪有,做影视后期有哪些资源网站,重庆建设信息网站查询这是一个非常常见的关于 Spring 事务传播机制 的问题,核心问题是: 在同一个类中,方法 A 调用方法 B,而方法 B 上有 Transactional 注解。当调用方法 A 时,如果发生异常,方法 B 的事务会生效吗? …

这是一个非常常见的关于 Spring 事务传播机制 的问题,核心问题是:

在同一个类中,方法 A 调用方法 B,而方法 B 上有 @Transactional 注解。当调用方法 A 时,如果发生异常,方法 B 的事务会生效吗?


✅ 简短回答:

 

📌 示例代码说明

@Service
public class MyService {public void methodA() {// 做一些操作methodB();  // 内部调用methodB}@Transactionalpublic void methodB() {// 数据库操作}
}

❗️问题:

  •  

🤔 为什么事务不生效?

因为 Spring 的事务是通过 动态代理(JDK Proxy 或 CGLIB) 实现的:

  •  

✅ 如何解决这个问题?

✅ 方案一:将方法拆分到不同的类中

把 methodB() 放到另一个 Service 类中:

@Service
public class MyService {@Autowiredprivate AnotherService anotherService;public void methodA() {// 做一些操作anotherService.methodB();  // 外部调用}
}@Service
public class AnotherService {@Transactionalpublic void methodB() {// 数据库操作}
}

✅ 这样事务就会生效了。


✅ 方案二:通过 AopContext.currentProxy() 获取代理对象(慎用)

你可以通过以下方式获取当前类的代理对象来调用 methodB()

@Service
public class MyService implements ApplicationContextAware {private static ApplicationContext applicationContext;@Transactionalpublic void methodB() {// 数据库操作}public void methodA() {// 获取当前类的代理对象MyService proxy = (MyService) AopContext.currentProxy();proxy.methodB();  // 使用代理调用}@Overridepublic void setApplicationContext(ApplicationContext ctx) {applicationContext = ctx;}
}

⚠️ 注意事项:

  •  

🔁 补充:事务传播行为(Propagation Behavior)

如果你希望方法B的行为能被方法A控制,可以指定事务传播行为,例如:

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodB() {// 总是开启一个新事务
}

 

✅ 总结

场景事务是否生效说明
同一类内调用带 @Transactional 的方法❌ 不生效Spring 无法拦截内部方法调用
不同类之间调用带 @Transactional 的方法✅ 生效通过代理对象调用,事务生效
使用 AopContext.currentProxy() 调用✅ 可以生效需要设置 expose-proxy=true

 

http://www.yayakq.cn/news/49628/

相关文章:

  • 个人网站建设wordpress打通公众号
  • 佛山市住房建设局网站专门做饮食加盟的网站
  • 招商局网站建设方案桂林漓江图片高清
  • 保定网站设计公司软件设计流程图
  • 苏州集团网站制作开发惠州建设局网站首页
  • 河南网站建设平台西安千度网站建设
  • 烟台h5网站建设公司怎么做网上卖菜网站
  • 织梦网站栏目管理空白jsp python 网站开发
  • 网站建设专家公司排行商贸有限公司注销流程
  • win10使用dw做网站程序开发合同
  • 自己建设网站怎么被百度收入培训网站建设方案
  • 精美手机网站模板青海建筑网站建设公司
  • 做网页链接网站电子商务网站业务流程分析
  • 游戏网站建设赚钱职教集团网站建设
  • 长春 建设工程信息网站上海装修公司排名前十强排行榜
  • 厦门网站建设哪家强怎么做一淘宝客网站
  • 莒县网站制作公司网站文章批量上传工具
  • 网络公司网站设计方案ppt做网站投注代理犯罪吗
  • 怎样免费给自己的公司做网站网站建设做什么好
  • 霞山网站开发公司家乡网页模板
  • google站长工具360度街景实景地图下载
  • 建立视频网站要多少钱wordpress循环
  • 工艺品东莞网站建设在线考试系统网站建设
  • 友链交换网站源码pc网站手机版开发
  • 可以商用的图片网站建筑网校排名前十大品牌
  • 域名除了做网站还能做什么双11销量数据
  • 自己开网站工作室广告优化师培训
  • 网站首页内链怎么做有什么做ppt的网站
  • 产品推广网站模板藤县建设局网站
  • ag电子游戏网站开发抖音搜索seo软件