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


    线程关闭--还回池中

    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  

  • 相关阅读:
    windows2008R2新增磁盘处于脱机状态及介质写入受保护解决办法
    Oracle查询字段结果加单引号以及其他内容
    系统部署Oracle及cmd命令
    如何允许谷歌浏览器Adobe Flash Player一直运行
    浏览器被hao123篡改怎么办?
    Oracle数据库备份还原
    11_程序中的循环
    10_选择结构
    09_控制台输入
    08_运算符
  • 原文地址:https://www.cnblogs.com/daofree/p/16534640.html
Copyright © 2020-2023  润新知