用到的代理模式:
1.mapperProxy去代理dao里面定义的类
2.连接池里面:1.connectionState(包含两个pooledConnection集合)包含 2.pooledConnection(创建他的同时,是创建了一个代理,代理拦截了connection的close方法,让其将用完的连接从活跃连接集合移除,并放入空闲连接,此时同时唤醒等待连接的线程继续自旋《被阻塞是在获取不到空闲连接的时候被阻塞》)
3.插件原理,层层包裹目标类和方法
4.缓存机制。如果有延迟加载,为目标类创建代理类,当使用get()调用的时候,拦截调用。
用到的装饰器模式:
1.CacheExcutor去装饰simpleExecutor
2.用TransactionalCache去装饰cache
用到的建造者模式
1.创建MappedStatement
2.创建dynamicSql