博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阶段3 2.Spring_07.银行转账案例_10 使用动态代理实现事务控制
阅读量:4326 次
发布时间:2019-06-06

本文共 933 字,大约阅读时间需要 3 分钟。

回到事物的案例中

我们现在希望用代码比较精简的这个AccountServiceImpl这个类。而不是一堆事物的AccountServiceImpl_OLD这个类
新建BeanFactory类
AccountService需要通过spring注入的方式。所以这里提供了set方法
代理谁就写的类加载器。
复制这里的代码
复制过来,然后进行修改
这里有很多红色报错的地方。那就是tsManager这个对象。这就需要在上面定义。
把AccountServiceImpl_OLD中定义的tsManager和生成的set方法都复制过来
accountService需要是一个最终的对象。所以这里用final来修饰
这样这个代理对象就创建完了。同时也加上了事物
这样执行AccountServiceImpl这个被代理对象里面的任何方法时,都会经过代理对象。
被代理对象AccountServiceImpl内就不再需要tsManager。因为都由代理对象来控制了。
完成以上。事务控制和业务层的方法就进行了真正的分离

bean.xml的修改

accountService中注入事务管理就不再需要了。

配置BeanFactory

beanfacoty中注入Service

再注入事物管理器
配置代理的Service
之前的这里的accountService就是一个普通的Service对象,里面没有任何带事物支持的
这里我们不能再配置AccountServiceImpl这个类了。而是要用我们之前对象创建三种方式之一的实例工厂,也就是factory-bean
这样我们就出现了两个类型相同的。这两都实现了IAccountService接口,一个是动态代理实现的,一个本身就是实现类
那么我们测试的时候,用Autowired这种方式注入就不行了。因为这个再注入的时候二选一,选不出来
所以就需要用Qulifier。我们这里就用代理类的Service
在这里打印一句话
测试使用动态代码实现事务控制
出了一场,金额都没有变化
配置变的很繁琐。接下来就需要Spring中的AOP

转载于:https://www.cnblogs.com/wangjunwei/p/11354421.html

你可能感兴趣的文章
第四阶段 15_Linux tomcat安装与配置
查看>>
NAS 创建大文件
查看>>
学习笔记-模块之xml文件处理
查看>>
接口测试用例
查看>>
面试:用 Java 实现一个 Singleton 模式
查看>>
Sybase IQ导出文件的几种方式
查看>>
案例:手动输入一个字符串,打散放进一个列表,小写字母反序 大写字母保持不变...
查看>>
PCRE demo【转】
查看>>
矩阵的SVD分解
查看>>
性能优化之数据库优化
查看>>
linux 系统下 tar 的压缩与解压缩命令
查看>>
阿里负载均衡,配置中间证书问题(在starcom申请免费DV ssl)
查看>>
转:How to force a wordbreaker to be used in Sharepoint Search
查看>>
MySQL存储过程定时任务
查看>>
Python中and(逻辑与)计算法则
查看>>
POJ 3267 The Cow Lexicon(动态规划)
查看>>
设计原理+设计模式
查看>>
音视频处理
查看>>
tomcat 7服务器跨域问题解决
查看>>
前台实现ajax 需注意的地方
查看>>