美文网首页
实现spring的事物管理

实现spring的事物管理

作者: Ludwigvan | 来源:发表于2017-10-12 16:22 被阅读101次

    事务,是描述一组操作的抽象,比如对数据库的一组操作,要么全部成功,要么全部失败。事务具有4个特性:Atomicity(原子性),Consistency(一致性),Isolation(隔离性),Durability(持久性)

    要实现spring的事物管理,需要明白几点:

    1、java的反射(主要用jdk 的动态代理实现DAO操作的增加即AOP);

    2、无锁线程安全(参考spring的源码 使用ThreadLocal 实现无锁的资源共享)

    下面看下代码:工程目录:

    1、ConnectionHolder.java 主要持有connection对象;

    2、SingleThreadConnetion.java:

    3、下面实现如何根据注解来判断是否开启事物;

    先定义一个注解:

    代码中可以通过method.isAnnotationPresent(MyTransaction.class)来判断是否开启事物;后面Test的时候有代码:

    如果有该注解那么:

    定义一个事务管理器:

    把事物单独提取出来然后使用aop 增加到需要使用事物的地方;

    JDK的动态代理需要主要是实习InvocationHandler 接口 实现其中的invoke 方法,该方法第一个参数使我们需要增强的接口对象;实际上这个handler相当于一个代理

    jdk 的动态是基于接口的代理,所以先要定义一个接口:

    最后是测试啦:

    相关文章

      网友评论

          本文标题:实现spring的事物管理

          本文链接:https://www.haomeiwen.com/subject/ywhoyxtx.html