最新公告
  • 欢迎您光临极客文库,登录获取更多编程学习资源及文章!立即加入我们
  • Spring事务管理之编程式事务管理和声明式事务管理

    编程式事务实现方式

    模板事务(Transaction Template)的方式

    – 此为Spring官方团队推荐的编程式事务管理方式

    – 主要工具为Jdbc Template类

    平台事务管理器(Platform Transaction Manager)方式

    – 类似应用JTA UserTransaction API方式,但异常处理更简洁

    – 核心类为:Spring事务管理的三个接口类以及Jdbc template类。辅助类为:TransactionDefinition和TransactionStatus

    编程式事务实现案例

    模板事务(Transaction Template)案例

    – 步骤:获取模板对象,选择事务结果类型,业务数据操作处理

    平台事务管理器(Platform Transaction Manager)案例

    – 步骤:获取事务管理器;获取事务属性对象;获取事务状态对象;创建JDBC模板对象;业务数据操作处理。

    编程事务总结

    需要有效的数据源,具体数据源根据实际情况创建。

    创建编程事务管理对象:

    – 事务模板(Transaction Template)

    – 事务管理器(plateform Transaction Manager)

    业务逻辑处理

    -基于JdbcTemplate完成业务处理

    声明式事务实现原理

    基于AOP模式机制,对方法前后进行拦截。

    声明式事务实现方式

    声明式事务管理的配置类型:

    – 5种类型:独立代理;共享代理;拦截器;tx拦截器;全注释。(前三类2.0版本后不推荐使用)

    声明式事务管理配置实现方式:

      
    
    
        
        
            
        
        
            
    		
    		
    		
        
    	  
    	
        
          
          
          
            
          
        
        
        
        
        
        
        
        
            
            
                
                
                
                
            
        
        
        
            
            
        
      
    

    编程事务管理和声明式事务管理区别

    编程式事务运行用户在代码中精确定义事务的边界

    声明式事务有助于用户将操作与事务规则进行解耦

    – 基于AOP交由Spring容器实现

    – 实现关注点聚焦在业务逻辑上

    概括而言:

    – 编程式事务侵入到业务代码里面,但是提供了更加详细的事务管理;而声明式事务由于基于AOP,所以既能起到事务管理的作用,又可以不影响业务代码的具体实现。

    两种事务的选择

    小型应用,事务操作少:

    – 建议编程式事务管理实现:Transaction Template

    – 简单、显示操作、直观明显、可以设置事务名称

    大型应用、事务操作多:

    – 业务复杂度高、关联性紧密,建议声明式事务管理实现

    – 关注点聚焦到业务层面,实现业务和事务的解耦

    通用事务问题的解决方案

    事务管理器类型:

    – 基于不同的数据源选择对应的事务管理器

    – 选择正确的Platform Transaction Manager实现类

    – 全局事务的选择:Jta Transaction Manager

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » Spring事务管理之编程式事务管理和声明式事务管理

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    参与讨论

    • 108会员总数(位)
    • 3700资源总数(个)
    • 5本周发布(个)
    • 2 今日发布(个)
    • 202稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级