随笔 - 154  文章 - 0  评论 - 4  阅读 - 49544

事务-接口与子类动态代理

线程关闭--还回池中

close() 连接关闭,也是还回连接池中 ,仍然绑着连接,但是不能用了  需要解绑 remove()

 

 事务 代表的 提交,sql执行成功 提交成功,说明肯定有事务,默认开启

 queryRunner 有带参 无参 --每条一个事务,还是所有在一个事务中?

单表一条语句的crud,不涉及复杂业务 用了带参传入数据源(即连接池)  不考虑多条事务问题 

多个dao使用同一个对象 会有问题 配多例

 

 

queryRunner对象 每次创建一个新的,并且在数据源中 拿连接 

每次sql执行,都用queryRunner.query()   queryRunner 多例都是新的

事务 控制 应该在业务层,而不是dao持久层 默认单条事务

 

 

 

 事务管理设置

 

 一个业务,几条sql 拿到的是 唯一的 连接 connection 

 

 

JDK 基于接口动态代理   

理解3个参数:

JVM运行时  要用类加载器创建代理对象,

生成相同的方法,class[] 接口保证

方法增强的代码。最后生成代理对象  

 

 

 

 

 

 

 

 

基于子类--  MethodIntercepter方法拦截

 

 

 所有业务方法 ---  连接点

被增强(事务)的方法 -- 切入点

动态代理 invoke 具有拦截作用 拦截被代理对象的所有执行方法

 

 

 

 

aop注解配置 有 顺序调用问题  最终通知 先跑,小心先释放   环绕通知没问题

 

 

自己 写的  事务管理器  (主要就是 提交 回滚),自己 配置 < aop:config> <aop:before。。。。

spring 也提供了事务管理器(主要就是 提交 回滚)   声明式事务控制--提倡注解版

 

 

 

哪些方法 需要通知

 

 

 编程式事务控制   有重复代码   匿名内部类 实现callback  

 

posted on   daofree  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示