Spring声明式事务如何选择代理方式?
2024-09-01 12:59:47
Spring声明式事务如何选择代理方式
解决方法:
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代理模式优缺点比较:
若目标对象实现了若干接口,spring使用JDK的java.lang.reflect.Proxy类代理。
优点:因为有接口,所以使系统更加松耦合
缺点:为每一个目标类创建接口若目标对象没有实现任何接口,spring使用CGLIB库生成目标对象的子类。
优点:因为代理类与目标类是继承关系,所以不需要有接口的存在。
缺点:因为没有使用接口,所以系统的耦合性没有使用JDK的动态代理好。
最新文章
- Azure ARM (13) 从现有VHD文件,创建新的ARM VM
- ASP.NET Word/Excel 权限问题
- Tomcat的目录结构、处理流程、主配置文件(server.xml)释义
- SQLServer查询执行计划分析 - 案例
- linux下软件安装的方法
- 一个IT人士的个人经历,给迷失方向的朋友
- Natural Language Processing with Python - Chapter 0
- puppet学习:文件夹权限的问题
- 20160409 javaweb 数据库连接池
- memcache和memcached
- sqlite3经常使用命令&;amp;语法
- My SQL数据库的安装与配置
- 【Ubuntu 16】启动Eclipse Indigo报错 error code1 jdk没有配置好
- tensorflow入门教程
- Java开发笔记(六十五)集合:HashSet和TreeSet
- 本博客不再更新和维护,后续文章会在掘金和GitHub发布,感兴趣的小伙伴可以掘金搜索王振宇,谢谢
- [zz] MATLAB工具箱介绍
- 震惊!90%的程序员不知道的Java知识!
- NavigationController相关颜色设置
- LINQ学习之旅 (四)