本文收录于模仿与学习MyBatis系列
简述
在本篇中,将讨论与解释动态代理是什么,以及Mapper在MyBatis中的意义。最终实现一个基础的Mapper代理类。
最终结果是一个Java Maven项目,代码存在github上。
动态代理
代理是一种设计模式,即对于一个类A,设计一个拥有同样接口的代理类P,负责为A进行统一的预处理、过滤、事后处理等。比如说我希望记录下对A的方法的调用时间、花费时间:
interface Base {
void work1();
void work2();
}
class A implements Base {
public void work1() { System.out.println("work1"); }
public void work2() { System.out.println("work2"); }
}