Spring事务管理——声明式事务(基于注解)

文章摘要:
演示Spring的事务管理,使用基于注解的声明式事务管理。
未启用事务管理时,事务不会自动回滚;启用事务之后,当发生异常时,事务回滚。
与切面方式的区别:无需定义增强、配置切点和切面。

附总结:

Spring事务4种方式比较
类型 配置关键点 缺点
原始方式 1、注入顺序:连接池→事务管理器→事务管理模板→ServiceImpl类 2、在ServiceImpl类中调用transactionTemplate实例的execute方法,重写doInTransactionWithoutResult方法 对ServiceImpl有侵入编码,工作量大,不灵活
声明式事务(原始方式) 1、创建代理对象,目标对象为ServiceImpl类的bean,注入事故管理器,设置属性 2、在Test类中注入代理对象,通过代理对象执行ServiceImpl类的方法 需要为每一个管理事务的类生成代理,需要为每个类都需要进行配置
声明式事务(基于切面、拦截器) 1、 通过在方法上定义增强 2、 通过定义切点和切面
声明式事务(基于注解) 1、通过开启注解的事务管理 2、在实现类上使用@Transactional开启事务

Continue reading

Spring事务管理——声明式事务(基于切面)

文章摘要:
演示Spring的事务管理,使用基于切面的声明式事务管理。
未启用事务管理时,事务不会自动回滚;启用事务之后,当发生异常时,事务回滚。
与原始方式的区别主要是不对某个类的某个方法设置事务,而是定义切面,可以对类的所有方法生效。
Continue reading

Spring事务管理——声明式事务(原始方式)

文章摘要:
演示Spring的事务管理,使用原始的声明式事务管理。
未启用事务管理时,事务不会自动回滚;启用事务之后,当发生异常时,事务回滚。
与手动编码方式的区别主要是修改了applicationContext.xml的配置,注入代理类对象,减少了对service方法的侵入。
Continue reading