开发者社区> 问答> 正文

在执行service方法前怎么实现先执行别的方法??报错

最近在写jdbc,突然有个疑问,能不能用反射或者其他方法在调用service之前把Connection拿到,service报错时回滚,service执行完之后commit?请各位大神指教指教一下

展开
收起
爱吃鱼的程序员 2020-06-14 15:58:04 882 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    不用框架的话。自己写一个工具类使用一个ThreadLocal变量,绑定Connection。
    工具类中提供获取数据库connection的方法,并且绑定当前线程,并将autoCommit()设为false。;
    工具类中还要提供一个方法来提交当前线程的connection,并处理异常回滚的方法。commit()
    然后用java的动态代理,给service方法上加个前置通知,通过工具类的getMyConnection()来获取connection;
    service方法上再加一个后置通知调用工具类的commit()方法。
    dao层也要通过工具类去获取当前线程的同一个Connection。
    大概思路就是这样,具体细节需要自己考虑。
    这也是spring管理事务的基本做法。

    2020-06-14 15:58:20
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《基于 Service Worker 实现在线代理》 立即下载
建立联系方法之一 立即下载
开源广进-用Service Catalog构造K8S服务能力 立即下载

相关实验场景

更多