网上找了一下 spring 事务失效的原因,感觉这篇文章比较好
https://blog.csdn.net/andybbc/article/details/52913525
这边文章中有个点想请教一下大伙:
如果配置了事务, 就相当于又创建了一个类:UserServiceProxy
public class UserServiceProxy extends UserService{ private UserService userService; ... public User getUserByName(String name){ User user = null; try{ // 在这里开启事务 user = userService.getUserByName(name);=======A 处 // 在这里提交事务 } catch(Exception e){ // 在这里回滚事务
// 这块应该需要向外抛异常, 否则我们就无法获取异常信息了.
// 至于方法声明没有添加异常声明, 是因为覆写方法, 异常必须和父类声明的异常"兼容".
// 这块应该是利用的 java 虚拟机并不区分普通异常和运行时异常的特点.
throw e;
}
return user;
}
...
}
疑问点是:文章说所有的 private 方法, final 方法 和 static 方法 都无法 直接 添加 spring 的事务管理功能是因为于 java 继承时, 不能重写 private , final , static 修饰的方法.
可是在这边的 A 处不是可以放入 UserService 的由 private , final , static 修饰的方法吗?
谢谢大伙~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.