自学Java第68天
再一次接触到了动态代理
比起第一次接触到动态代理时的一脸懵逼
这次理解起来相对而言好了很多
用动态代理自己写了一个数据库连接池
这次的例子更加地实用
而不仅仅是一个明星经纪人例子
连接Connection是Java中的父接口
MySQL中写了一个其实现类
就在MySQL驱动中,具体是啥不用管
现在代理MySQL中的连接
改变其close方法,其它方法不用变
其实现方法就是使用动态代理
动态代理有一个非常重要的东西
就是那个调用处理器
代理类对象无论调用哪个方法
调用处理器都会调用它的invoke方法
需要重写其invoke方法,通过参数method判断
代理类对象调用的是那个方法
再写入具体的业务逻辑即可
当然事实上有现有的连接池框架
我们直接拿来用就OK了,不用自己写
但是最终还是觉得写一遍比较好
还是那句话知其然也要知其所以然
不仅仅只是用,还要尽可能去理解其原理
并且自己写一遍
也能更好地去学习那些开源连接池
再一次接触到了动态代理
比起第一次接触到动态代理时的一脸懵逼
这次理解起来相对而言好了很多
用动态代理自己写了一个数据库连接池
这次的例子更加地实用
而不仅仅是一个明星经纪人例子
连接Connection是Java中的父接口
MySQL中写了一个其实现类
就在MySQL驱动中,具体是啥不用管
现在代理MySQL中的连接
改变其close方法,其它方法不用变
其实现方法就是使用动态代理
动态代理有一个非常重要的东西
就是那个调用处理器
代理类对象无论调用哪个方法
调用处理器都会调用它的invoke方法
需要重写其invoke方法,通过参数method判断
代理类对象调用的是那个方法
再写入具体的业务逻辑即可
当然事实上有现有的连接池框架
我们直接拿来用就OK了,不用自己写
但是最终还是觉得写一遍比较好
还是那句话知其然也要知其所以然
不仅仅只是用,还要尽可能去理解其原理
并且自己写一遍
也能更好地去学习那些开源连接池
展开
25
14