Spring声明式事务如何选择代理方式

 

解决方法:

1.基于注解方法:

  1. <tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>

2.基于xml配置方法:

<aop:config expose-proxy="true" proxy-target-class="false">

</aop:config>

默认false,选择jdbc代理模式,true使用cglib代理模式。

jdbc代理模式和cglib代理模式优缺点比较:

    1. 若目标对象实现了若干接口,spring使用JDK的java.lang.reflect.Proxy类代理。 
      优点:因为有接口,所以使系统更加松耦合 
      缺点:为每一个目标类创建接口

    2. 若目标对象没有实现任何接口,spring使用CGLIB库生成目标对象的子类。 
      优点:因为代理类与目标类是继承关系,所以不需要有接口的存在。 
      缺点:因为没有使用接口,所以系统的耦合性没有使用JDK的动态代理好。

最新文章

  1. Azure ARM (13) 从现有VHD文件,创建新的ARM VM
  2. ASP.NET Word/Excel 权限问题
  3. Tomcat的目录结构、处理流程、主配置文件(server.xml)释义
  4. SQLServer查询执行计划分析 - 案例
  5. linux下软件安装的方法
  6. 一个IT人士的个人经历,给迷失方向的朋友
  7. Natural Language Processing with Python - Chapter 0
  8. puppet学习:文件夹权限的问题
  9. 20160409 javaweb 数据库连接池
  10. memcache和memcached
  11. sqlite3经常使用命令&amp;amp;语法
  12. My SQL数据库的安装与配置
  13. 【Ubuntu 16】启动Eclipse Indigo报错 error code1 jdk没有配置好
  14. tensorflow入门教程
  15. Java开发笔记(六十五)集合:HashSet和TreeSet
  16. 本博客不再更新和维护,后续文章会在掘金和GitHub发布,感兴趣的小伙伴可以掘金搜索王振宇,谢谢
  17. [zz] MATLAB工具箱介绍
  18. 震惊!90%的程序员不知道的Java知识!
  19. NavigationController相关颜色设置
  20. LINQ学习之旅 (四)

热门文章

  1. python 多分类任务中按照类别分层采样
  2. unity之龙骨动画
  3. nginx 环境 thinkphp 隐藏index.php
  4. 【线上监控】日志上报bug处理方式总结
  5. flask 框架 转载:https://cloud.tencent.com/developer/article/1465949
  6. vue2 路由,运动
  7. Greenplum 调优--数据倾斜排查(二)
  8. PostgreSQL 用户、角色、权限管理
  9. 使用webuploader实现大文件断点续传
  10. plupload上传整个文件夹