阶段3 2.Spring_07.银行转账案例_9 基于子类的动态代理
代理一个普通的java类
导入cglib的包

它还有一个asm的依赖。会自动加进来

创建cglib的文件夹。把proxy里面的Client和Producer复制到cglib文件夹

Producer不实现任何的接口

Client内的代码要重新写
不能受罪种类,如果是最终类就不能再创建子类了

参数1是Class 参数2是Callback


MethodInterceptor是Callback的子接口

前面三个参数和基于接口的动态代码参数是一样的


producer需要用final来修饰


调用一下这个方法,传入1万2f



对已经写好的方法进行增强。并且在增强的过程中提供一些我们需要实现的功能
用处
连接池的close方法在关闭的时候不能真正的关闭,而是要还回池中。那就可以使用动态代理的方式对connection的close方法进行增强。把它加回到池里面去
解决全站中文乱码request方法的增强,用装饰者模式可以实现,用动态代理同样可以实现。就是对getParameter的三个方法进行增强。
阶段3 2.Spring_07.银行转账案例_9 基于子类的动态代理的更多相关文章
- 阶段3 2.Spring_07.银行转账案例_8 基于接口的动态代理回顾
创建 Producer 生产者的类 创建标准.这标准就是接口 创建消费者的类 以前的方式,客户直接找生产厂家 代理商出现以后,怎么去联系代理商 动态代理 第一个参数是ClassLoader 第二个参数 ...
- 阶段3 2.Spring_07.银行转账案例_1 今日课程内容介绍
1.完善我们的account案例 2.分析案例中问题 3.回顾之前讲过的一个技术:动态代理 4.动态代理另一种实现方式 5.解决案例中的问题 6.AOP的概念 7.spring中的AOP相关术语 8. ...
- 阶段3 2.Spring_07.银行转账案例_10 使用动态代理实现事务控制
回到事物的案例中 我们现在希望用代码比较精简的这个AccountServiceImpl这个类.而不是一堆事物的AccountServiceImpl_OLD这个类 新建BeanFactory类 Acco ...
- 阶段3 2.Spring_07.银行转账案例_7 代理的分析
新建项目 实现动态代理. 动态代理的概念 买电脑找代理商 代理的出现 解决了生产厂家的一些问题 需要java中的动态代理机制
- 阶段3 2.Spring_07.银行转账案例_6 测试转账并分析案例中的问题
转账回滚这里把异常打印出来.AccountServiceTest.java 把数据库的金额现在都改成1000块 运行测试方法 这里已经报错了. 刷新数据库内的数据.这样我们事物就控制成功了. 事物控制 ...
- 阶段3 2.Spring_07.银行转账案例_5 编写业务层和持久层事务控制代码并配置spring的ioc
Service中就需要用到 TransactionManager中的方法.提供set方法等着spring注入 这里面所有的操作都可以加上事物控制 其他的方法都是相同的操作 这里没有返回结果 转账的方法 ...
- 阶段3 2.Spring_07.银行转账案例_4 编写事务管理工具类并分析连接和线程解绑
事务管理工具类 首先需要有connection.并且是当前线程上的connection.声明connectionUtils.提供set方法等着spring来注入 有异常需要放在事务里面 close关闭 ...
- 阶段3 2.Spring_07.银行转账案例_3 分析事务的问题并编写ConnectionUtils
不是没有事务造成的 这样相当于有四个connection 每一个都有自己独立的事物 每一个自己成功就提交事务. 已经提交的就执行结束.没有提交的就报异常 让这些操作使用同一个connection 事物 ...
- 阶段3 2.Spring_07.银行转账案例_2 案例中添加转账方法并演示事务问题
使用xmlioc这个项目进行完善. 创建一个新的工程把之前的代码都复制过来. 复制pom.xml内的依赖项 java下的com包复制过来. 配置文件复制过来 测试类固执过来 内容进行删减 测试类的方法 ...
随机推荐
- 小米Air 13.3 安装Arch Linux
0. 前言 最近新买了一台小米Air 13.3,除了但键盘手感外都比较满意.我比较喜欢折腾Linux,但又不想放弃原有的Windows 10 Home,于是在原有的windows 10基础上再安装了A ...
- Let's write a framework.
Let's write a framework. create a model var model={a:1,b:'b'} let's create a router, router maps url ...
- Gym - 101915D Largest Group 最大团
给你一个二分图 问你最大团为多大 解一:状压DP 解二:二分图最大匹配 二分图的最大团=补图的最大独立集 二分图最大独立集=二分图定点个数-最大匹配 //Hungary #include<bit ...
- win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结
win10操作系统下oracle11g客户端/服务端的下载安装配置卸载总结 一:前提 注意:现在有两种安装的方式 1. oracle11g服务端(64位)+oracle客户端(32位)+plsql(3 ...
- jdbc 占位符插入null值 NullPointerException
如果变量flag 为空 ,那么executeUpdate 后面的参数 bookCollect.getFlag() 就会被executeUpdate()方法忽略掉,程序会报错. String addSq ...
- 模拟客户端向服务器发起请求(从Fiddler抓包到Jmeter接口测试)
一.安装Fiddler 二.配置 在菜单栏Tools->Fiddler Options->Connections,勾选Allow remote computers to connect,默 ...
- SQL Server里Grouping Sets的威力【转】
在SQL Server里,你有没有想进行跨越多个列/纬度的聚集操作,不使用SSAS许可(SQL Server分析服务).我不是说在生产里使用开发版,也不是说安装盗版SQL Server. 不可能的任务 ...
- jmeter测试报告添加报告生成日期时间
<!-- Defined parameters (overrideable) --><xsl:param name="showData" select=" ...
- Java多线程和并发(五),线程的状态
目录 1.线程的六个状态 2.sleep和wait的区别 3.锁池(EntryList)和等待池(WaitSet) 4.notify和notifyall的区别 五.线程的状态 1.线程的六个状态 2. ...
- 计算机网络(九),HTTP简介
目录 1.超文本传输协议HTTP的主要特点 2.HTTP请求结构 3.HTTP响应结构 4.http请求/响应的步骤 九.HTTP简介 1.超文本传输协议HTTP的主要特点 (1)支持客户/服务器模式 ...